Javascript XMLHttpRequest.status不';不返回值
我正在尝试使用javascript解析XML文档,并不断遇到以下问题: 当我尝试使用xmlhttp.status检查我试图获取的文件是否存在时,每当我试图获取的文件不存在时,我就会收到一个“拒绝访问受限URI”错误 为了举例说明,当运行以下代码时,我得到了前面提到的错误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
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步结束
试试这个,让我知道
另外,请确保阅读,因为默认情况下,似乎对最大并发请求数有限制,等等