NETWORK_ERR:XMLHttpRequest异常101

Paw*_*ami 9 javascript ajax google-chrome xmlhttprequest

我在Chrome中遇到了AJAX问题,出现以下错误:

Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

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;
}
Run Code Online (Sandbox Code Playgroud)

小智 12

解决方案是将async参数设置为true:

xmlhttp.open("GET", filename+"?random="+Math.floor(Math.random()*100000001), true);
Run Code Online (Sandbox Code Playgroud)


Ale*_*fee 2

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

从 Chrome 版本 16.0.912.63 开始仍然发生。

我不知道有什么解决办法。解决方法是使用 Firefox 或任何其他浏览器来运行由 file: URL 提供的应用程序。

  • 您可以使用“--allow-file-access-from-files”开关启动 chrome。 (5认同)