我知道之前已经解决了这么多次。但我可以看到响应上已经有标题上的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上查看时的请求标题:
接受: /
接受编码:gzip,deflate,sdch,br
接受语言:EN-US,EN; Q = 0.8
使用控制请求报头:X-AN-web服务-identitykey
使用控制请求-方法:POST
的缓存控制:无缓存
的连接:保活
的主机:integration-api.domain.com
的来源:http://OriginDomain
的附注:无缓存
的 Referer的:http://OriginDomain/apitest/
用户代理:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,与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-一个Web网页,customertransienttoken,X-的Web网页版本
的访问控制允许来源:*
日期:2016年11月30日星期三06:56:50 GMT
服务器是否需要在响应中添加Access-Control-Allow-Method或任何其他标头,或者我是否需要在代码中添加内容?
我使用angular.js调用$ http调用url
答案 0 :(得分:0)
您还需要允许方法类型
"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