【发布时间】:2016-02-11 07:22:07
【问题描述】:
我的 Angular 应用程序向对其他域开放的 API 发出请求。
在发出POST 请求没有 data 字段时,请求成功完成。因此,$http.post(url).then(); 有效。但是,$http.post(url, data).then() or $http.post(url, null).then(); 没有。请求也使用 jQuery 和 Postman(我正在使用的 REST 客户端)完成。
抛出的错误是:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost' 不允许访问。响应的 HTTP 状态代码为 403。
设置自定义标题(就像 SO 上的大多数答案一样)不成功。使用 {headers: {}} 或修改 $httpProvider.defaults 传递配置对象显示 Chrome 检查器中的标题没有变化。
开启CORS plugin后问题依旧,说明这与API无关。
我错过了什么?
【问题讨论】:
-
来自 Angular 的请求可能有一个未在 CORS 清单中列入白名单的标头。尝试在 Postman 中一一添加 Angular 发出的请求的 headers 并找到那个不好的。
标签: javascript jquery angularjs