在 ajax POST 到另一个域期间,OPTIONS 请求返回“No 'Access-Control-Allow-Origin' header”错误
Posted
技术标签:
【中文标题】在 ajax POST 到另一个域期间,OPTIONS 请求返回“No \'Access-Control-Allow-Origin\' header”错误【英文标题】:OPTIONS request returns "No 'Access-Control-Allow-Origin' header" error during ajax POST to a different domain在 ajax POST 到另一个域期间,OPTIONS 请求返回“No 'Access-Control-Allow-Origin' header”错误 【发布时间】:2015-08-15 22:07:43 【问题描述】:我正在努力解决 CORS 问题。我从 js 向不同的域发出请求,该方法允许跨域请求,并且在 GET 和 POST 请求中都可以正常工作。看起来 OPTIONS 方法在 POST 之前调用并返回标准错误
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
return Response.ok().entity(c).header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS")
.header("Access-Control-Allow-Headers", "Content-Type, x-xsrf-token, X-Requested-With, Accept, Expires, Last-Modified, Cache-Control").build();
在客户端我使用 angularjs
$http.post(url, data).success(...)
但也尝试过
$.ajax(type:'POST',
headers:
'Accept': 'application/json',
'Content-Type': 'application/json'
...)
同样的结果。我还能做些什么来修复 POST 请求?
【问题讨论】:
【参考方案1】:将以下代码添加到您的 Angular JS 应用程序配置文件中
$httpProvider.defaults.useXDomain = true;
删除$httpProvider.defaults.headers.common['X-Requested-With'];
【讨论】:
以上是关于在 ajax POST 到另一个域期间,OPTIONS 请求返回“No 'Access-Control-Allow-Origin' header”错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ajax(Post) 请求期间抛出自定义 http 状态码