Javascript XMLHttpRequest.status不';不返回值

Javascript XMLHttpRequest.status不';不返回值,javascript,xml,Javascript,Xml,我正在尝试使用javascript解析XML文档,并不断遇到以下问题: 当我尝试使用xmlhttp.status检查我试图获取的文件是否存在时,每当我试图获取的文件不存在时,我就会收到一个“拒绝访问受限URI”错误 为了举例说明,当运行以下代码时,我得到了前面提到的错误 function loadXML(input_url) { var xmlDoc; xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET",input_url

我正在尝试使用javascript解析XML文档,并不断遇到以下问题:

当我尝试使用xmlhttp.status检查我试图获取的文件是否存在时,每当我试图获取的文件不存在时,我就会收到一个“拒绝访问受限URI”错误

为了举例说明,当运行以下代码时,我得到了前面提到的错误

function loadXML(input_url) {
    var xmlDoc;
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET",input_url,false);
    xmlhttp.send();

    if (xmlhttp.status == 200) {        //File exists
        xmlDoc = xmlhttp.responseXML;
        return xmlDoc
    }
    else if (xmlhttp.status == 404) {   //File doesn't exist
        alert("Hey! The file doesn't exist!");
        return;
    }

    var url = prompt("Please enter a URL here: :");
    var XMLDoc = loadXML(url);
因此,当我使用有效的url运行上述代码时,一切都很好

然而,只有当我试图访问无效的url(文件不存在的地方)时,我才会遇到上述问题

我看了其他的回答,实际上我在使用try/catch表达式方面取得了一些进展


然而,就我个人而言,我不明白为什么输入elseif块会产生这个错误。如果您对此有任何建议/指导,我们将不胜感激。

尝试异步执行

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState === 4) {
        if(xmlhttp.status === 200)
            /* do stuff */
        else
           /* do other stuff */
     } else 
         console.info("state is " + req.readyState);
}
xmlhttp.open("GET", input_url, true); // note the true parameter for async
xmlhttp.send(null);
console.info
将让您知道请求是否在某个状态下被“阻止”,但决不应该是这种情况,即使url无效或类似,您也应该始终在第4步结束

试试这个,让我知道

另外,请确保阅读,因为默认情况下,似乎对最大并发请求数有限制,等等