网络错误:XMLHttpRequest异常101

9
我在Chrome中遇到了一个AJAX问题,报错如下:
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101

这是我的代码:
function IO(filename) {
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        xmlhttp = new XMLHttpRequest();

    } else if (window.ActiveXObject) { // IE
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { }
        }
    }

    xmlhttp.open("GET", filename+"?random="+Math.floor(Math.random()*100000001), false);
    xmlhttp.send();

    if(xmlhttp.readyState==4)
        return xmlhttp.responseXML;
}

你正在使用什么 文件名 - pimvdb
2个回答

12
解决方法是将async参数设置为true:
xmlhttp.open("GET", filename+"?random="+Math.floor(Math.random()*100000001), true);

2
除了在没有正确头文件的情况下获取跨站点URL时发生错误外,当通过XHR(AJAX)获取本地文件时,也会发生此错误。显然,Chrome对其跨站点安全措施过于热衷,没有意识到一个file: URL应该被视为与另一个file: URL相同的站点。这是许多自制应用程序的问题,特别是Jasmine(JavaScript测试框架)。

截至Chrome版本16.0.912.63,仍然存在此问题。

我不知道任何解决方案。解决方法是使用Firefox或任何其他浏览器来运行从file: URLs提供的应用程序。


5
你可以使用 --allow-file-access-from-files 开关启动 Chrome。 - Dagg Nabbit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接