angularJS发送OPTIONS而不是POST

AlC*_*ode 6 javascript angularjs

我坚持这2天我找不到解决方案.当我做一个AngularJS POST时,它在标题中发送OPTIONS并从API返回错误代码看起来没什么特别的.

$http.defaults.headers.post["Content-Type"] = "application/json";
$http.post(URL, JSON.stringify(data)).
    success(function(data, status, headers, config) {
        alert(data);
    error(function(data, status, headers, config) {
        console.log("Error");
});
Run Code Online (Sandbox Code Playgroud)

CORS在它具有Headers的API上启用,当我在Chrome中使用fiddler或POSTMan进行POST时,只有当我使用angularJS帖子它才能正常工作时它才能正常运行.

我为什么得到 OPTIONS /SubmitTicket HTTP/1.1 instead of POST?

POST需要做什么?我已经读过它,它说像CORS这样的东西正在添加OPTIONS标题,但为什么呢?

Tho*_*ski 2

当您调用 CORS 请求时,浏览器始终向服务器发送 OPTIONS 请求以了解实际允许哪些方法。所以这是期望的行为。这就是所谓的:“预检请求”,请参阅:http ://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/ (部分:“预检请求”)

因此,在您的情况下,您必须允许 CORS 过滤器的“Access-Control-Allow-Methods”标头中的 OPTIONS 方法。