SCRIPT5:在 IE9 中对 xmlhttprequest 的访问被拒绝

IT技术 javascript xmlhttprequest internet-explorer-9
2021-02-21 15:15:36
var xhttp=new XMLHttpRequest();
xhttp.open('GET', 'foo.xml', false);

F12弹回:SCRIPT5:访问被拒绝。在第 95 行,即 xhttp.open 行。

我的 JavaScript 看起来格式良好,Firefox 做了我认为应该做的事情。

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

6个回答
感谢您对 MOTW 的解释。我的 XML 文件没有,我什至添加了一个以查看是否可以更改错误消息。没有这样的运气。
2021-05-11 15:15:36

这个例子说明了如何使用 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;

在 IE7、IE8 和 IE9 上,只需转到“设置”->“Internet 选项”->“安全”->“自定义级别”,然后将“杂项”下的安全设置更改为“跨域访问数据源”。

@Skurpi 同意,这就是使用 IE 的代价。在我们的应用程序中,我们声明仅支持 Firefox 和 Chrome。如果我们的客户想要使用 IE,那么他们需要确保启用此设置,我们的 IE 客户愿意更改他们的设置。
2021-04-28 15:15:36
尝试从书签运行 XMLHTTPRequest 时,我不断收到此拒绝访问错误。当我在页面上运行脚本时,它运行良好。这是唯一有效的解决方案。赢 7 IE 9。
2021-05-04 15:15:36

如果找不到 .replace 方法的目标页面(我输入了错误的页面名称),也会遇到此错误消息(SCRIPT5:访问被拒绝。)。我知道,因为它只是发生在我身上,这就是为什么我去搜索有关错误消息含义的更多信息。

“替换方法”是什么意思?我有此错误消息,但我无法弄清楚是什么原因造成的。
2021-05-02 15:15:36