繁体   English   中英

XMLHttpRequest.status不返回值

[英]XMLHttpRequest.status doesn't return a value

我正在尝试使用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表达式实际上已经取得了一些进展。

但是,对于我一生来说,我无法弄清楚为什么进入else if块会产生此错误。 任何建议/方向对此将不胜感激。

尝试异步进行。

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步结束。

试试这个,让我知道。

另外,请确保阅读https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest ,因为默认情况下最大并发请求似乎受到限制,等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM