仍然拥有" No'访问控制允许来源'标头出现在请求的资源上#34;添加Access-Control-Allow-Origin后出错:*

时间:2016-11-30 07:15:12

标签: javascript angularjs web-services api cors

我知道之前已经解决了这么多次。但我可以看到响应上已经有标题上的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

1 个答案:

答案 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