javascript - angularJS 发送选项而不是 POST

标签 javascript angularjs

我卡在这 2 天了,找不到解决方案。 当我执行 AngularJS POST 时,它会在 header 中发送选项并从 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");
});

CORS 在具有 header 的 API 上启用,当我在 Chrome 中使用 fiddler 或 POSTMan 进行 POST 时,只有当我使用 angularJS post 时它才能正常工作,它不会通过。

为什么我得到的是 OPTIONS/SubmitTicket HTTP/1.1 而不是 POST?

我需要做什么才能发布?我读过它说 CORS 正在添加 OPTIONS header ,但为什么呢?

最佳答案

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

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

关于javascript - angularJS 发送选项而不是 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30704283/

相关文章:

javascript - 如何使用 Firebase 对 HTML 进行异步更新

javascript - AngularJS - cordova android 上的意外 token "catch"

javascript - 如何使用AngularJS工厂?

javascript - google maps api 附加搜索框

javascript - 如何在 JS/Mootools 中实现 OnDestroy/OnDispose 事件?

javascript - 简单的条形进度指示器静态或动画

javascript - "' localStorage ' is null or not an object"IE8错误

javascript - Angular : on paste get pasted text

javascript - 如何在 ng-repeat 中获取所有 ng-model 的值

php - Nginx/php fpm CORS 请求未通过