[英]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.