使用XMLHttpRequest尝试CORS请求时,IE10和IE11 SCRIPT5访问被拒绝错误

时间:2014-11-25 15:29:16

标签: internet-explorer cors

我没有使用jquery,只是vanilla javascript。我的网站托管在一个域名上,让我们说它是example.com

运行以下代码时:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://www.example2.com', true);

我收到错误:

  

SCRIPT5:访问被拒绝

此代码在其他浏览器(chrome,safari)中运行良好。

此外,在我的网站上运行时,这似乎只会破坏。当我从IE 11控制台运行那段剪辑的代码时,在网络上的其他网站上,不会发生错误。

我是否需要在托管脚本的网站上设置任何特定标头?或者在加载脚本的网站上?

3 个答案:

答案 0 :(得分:3)

想出原因,这很奇怪,并且因为网站上有一些糟糕的遗留代码!

此元标记存在于标题中:

<meta http-equiv="X-UA-Compatible" content="IE=9" />

这告诉IE以IE9身份运行,IE9有不同的机制来进行跨域请求。

答案 1 :(得分:1)

我可以按如下方式使用XMLHttpRequest:

&#13;
&#13;
var req = new XMLHttpRequest();
req.open('GET', 'http://home.arcor.de/martin.honnen/cdtest/test2011060701.xml', false);
req.send();
var xml = new XMLSerializer().serializeToString(req.responseXML);
console.log(xml);
&#13;
&#13;
&#13;

服务器上的目录配置为允许来自其他来源的任何请求,发送Access-Control-Allow-Origin:*响应标头。

我在Windows 8.1上使用Firefox,Chrome和IE进行了测试。

答案 2 :(得分:0)

似乎我遇到了这个问题,因为错误的网址图片,但它们在Chrome中显示得很好,但不是IE。 例如:

http:////www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png

会在Google Chrome中显示(请复制并粘贴),但不会显示在我的IE中。

原因:上面的URL实际上不仅包含两个斜杠。嘿,我的网址上有拼写错误!试试吧!