添加 Access-Control-Allow-Origin 后,仍然出现“请求的资源上没有“访问控制允许来源”标头”错误:*
Posted
技术标签:
【中文标题】添加 Access-Control-Allow-Origin 后,仍然出现“请求的资源上没有“访问控制允许来源”标头”错误:*【英文标题】:Still having "No 'Access Control Allow Origin' header is present on the requested resource" error after adding Access-Control-Allow-Origin: * 【发布时间】:2017-04-14 10:10:12 【问题描述】:我知道这个问题之前已经解决过很多次了。但是我可以在响应中看到标题上已经有 Access-Control-Allow-Origin。
这是我的请求代码:
var req =
method: 'POST',
url: "integration-api.domain.com/login",
headers:
'Content-Type': 'application/x-www-form-urlencoded',
'X-AN-WebService-IdentityKey': identitykey,
'X-AN-WebService-CustomerAuthToken': customerAuth,
'X-AN-WebService-CustomerTransientToken': transientToken,
'Cache-Control': 'no-cache'
,
data: datatopass
;
console.log(datatopass);
return $http(req).then(function(response)
console.log(response);
return response.data;
, function(err)
console.log(err);
return err;
);
这是在 chrome 上查看时的请求标头:
Accept:/Accept-Encoding:gzip、deflate、sdch、brAccept-Language :en-US,en;q=0.8Access-Control-Request-Headers:x-an-webservice-identitykeyAccess-Control-Request -方法:POSTCache-Control:no-cacheConnection:keep-aliveHost:integration-api.domain.comOrigin:http://OriginDomainPragma:no-cacheReferer :http://OriginDomain/apitest/User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/54.0.2840.99 Safari/537.36
那么预检响应是:
Access-Control-Allow-Headers:x-an-webservice-identitykey, origin, content-type, x-an-webservice-customerauthtoken, x-an-webservice-deviceauthtoken,x- an-webservice-customertransienttoken,x-an-webservice-versionAccess-Control-Allow-Origin:* 日期:格林威治标准时间 2016 年 11 月 30 日星期三 06:56:50
服务器是否需要在响应中添加 Access-Control-Allow-Method 或任何其他标头,或者我是否需要在我的代码中添加一些内容?
我正在使用 angular.js 调用对 url 的 $http 调用
【问题讨论】:
你是如何解决这个问题的 【参考方案1】:你也需要允许方法类型
"Access-Control-Allow-Origin", "*";
'Access-Control-Allow-Methods', 'OPTIONS,GET,PUT,POST,DELETE";
"Access-Control-Allow-Headers", "X-Requested-With, Content-Type";
请看这个答案。 Response to preflight request doesn't pass access control check in NodeJS
【讨论】:
非常感谢!那么服务器端团队也需要添加这些 CORS 选项吗? 是的,如果要从不同的域调用 api。 我有允许的方法,还是同样的问题以上是关于添加 Access-Control-Allow-Origin 后,仍然出现“请求的资源上没有“访问控制允许来源”标头”错误:*的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress 警告:call_user_func_array() 期望参数 1 是有效的回调,数组必须正好有两个成员