POST请求在beego框架上被视为OPTIONS

我正在使用beego框架作为我的API框架和客户端上的AngularJS。我已正确设置所有CORS设置。我可以做GET请求。但是,当我尝试POST时,beego对待是OPTIONS请求。它还会发出警告:multiple

response.WriteHeader calls。有什么可能错吗?

我的beego CORS设置:

func init() {

orm.RegisterDataBase("default", "mysql", "root:@tcp(127.0.0.1:3306)/fakeapi")

beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{

AllowOrigins: []string{"*"},

AllowMethods: []string{"GET", "DELETE", "PUT", "PATCH", "POST"},

AllowHeaders: []string{"Origin"},

ExposeHeaders: []string{"Content-Length"},

AllowCredentials: true,

}))

}

我的ANgularJS请求

var transaction = $http.post(BASE_URL + "transaction", transactionData);

return $q.all([transaction]).then(function(response) {

console.log(response);

});

我的系统:Ubuntu 14.04 beego:1.4.2 bee:1.2.4 angularJS:1.3.12

回答:

这可能是因为当前有待合并到主服务器的问题/拉动请求:问题912

没有这一行,一切都很好::

router.go#L861

这似乎与提交3bb4d6f一致,该提交显示:

// Write status code if it has been set manually

// Set it to 0 afterwards to prevent "multiple response.WriteHeader calls"

(并router.go设置状态,因此出现错误信息)

提交f962457应该可以解决此问题,但尚未合并。


另一个问题904提到了一些有关无法检索先前在会话引擎中注册的会话数据的问题。也许Session.on标志可以提供帮助。

以上是 POST请求在beego框架上被视为OPTIONS 的全部内容, 来源链接: utcz.com/qa/411444.html

回到顶部