firefox和chrome的CORS错误

时间:2016-02-08 17:41:04

标签: javascript ajax xmlhttprequest

我的代码中有关于CORS错误的问题,我运行的.js文件为chrome和firefox提供了错误,但在IE上却没有。我被建议添加响应标头但我很困惑在哪里添加它。请帮助

xhr.open(method, url, true);

我尝试添加xhr.setRequestHeader(" Access-Control-Allow-Origin:*");对它来说,这会有用吗?

1 个答案:

答案 0 :(得分:4)

不要在客户端代码中添加xhr.setRequestHeader(“Access-Control-Allow-Origin:*”)。

要允许跨域请求,服务器只需要将Access-Control-Allow-Origin标头添加到响应中。

Access-Control-Allow-Origin的值应该是允许的请求的域名,或者只是*,如果允许任何来源。

Access-Control-Allow-Origin:http://domain1.com

Access-Control-Allow-Origin:*

如果您正在调用Web API方法,请参考以下测试的代码及其用于其余API的工作。

客户端代码Ajax调用:

function CallAjax() {
    
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:54118/api/values", true);
xhr.onload = function () {
    console.log(xhr.responseText);
    alert("sucuess");
};
xhr.send();
}

服务器端更改:

在Web API项目中,您必须在Web.config文件中添加以下配置。在 system.webServer 部分下添加以下内容

 <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*"/>
      </customHeaders>
    </httpProtocol>

这将允许任何域访问资源。

希望这会有所帮助:)