SCRIPT5:在xmlhttprequest上的IE9中拒绝访问

Eri*_*c L 46 javascript xmlhttprequest internet-explorer-9

var xhttp=new XMLHttpRequest();
xhttp.open('GET', 'foo.xml', false);
Run Code Online (Sandbox Code Playgroud)

F12弹出:SCRIPT5:访问被拒绝.在第95行,这是xhttp.open行.

我的JavaScript似乎格式正确,Firefox做了我认为应该做的事情.

我已经阅读了很多与此非常类似的问题,所以我查看了同源策略,但我看不出它是如何应用的,因为foo.xml与html文件位于同一目录中.我在我的本地Intranet上打开了脚本权限,并告诉迈克菲休息五分钟,这是肯定的.我甚至试过以管理员身份运行IE,所以这不是真正的权限问题吗?为什么IE会被拒绝访问本地文件?

小智 5

此示例说明如何使用AJAX从任何网站提取资源.它适用于各种浏览器.我已经在IE8-IE10,safari,chrome,firefox,opera上测试过它.

if (window.XDomainRequest) xmlhttp = new XDomainRequest();
else if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.open("GET", "http://api.hostip.info/get_html.php", false);
xmlhttp.send();

hostipInfo = xmlhttp.responseText.split("\n");
var IP = false;
for (i = 0; hostipInfo.length >= i; i++) {
    if (hostipInfo[i]) {

        ipAddress = hostipInfo[i].split(":");
        if (ipAddress[0] == "IP") {
            IP = ipAddress[1];
        }
    }
}
return IP;
Run Code Online (Sandbox Code Playgroud)


Nat*_*ver 0

我认为问题在于该文件位于您的本地计算机上,而 IE 拒绝访问,因为如果它允许脚本访问运行浏览器的计算机上的文件,那将是一个巨大的安全漏洞。
如果您有权访问服务器或另一个可以用作服务器的组件,也许您可​​以尝试将文件放在上面,然后像从网站一样运行脚本。