我有以下代码(仅相关部分):
xhttp=new XMLHttpRequest();
xhttp.open("GET",doc_name,false);
xhttp.send();
xmlDoc=xhttp.responseXML;
if(xmlDoc==null)
{
xmlDoc=loadXMLDoc(defaultXml);
}
如果指定的文件不存在,则在加载默认的xml文件时运行正常,但如果文件不存在,则仅在控制台中显示404错误。 (此错误不会反映除控制台之外的页面中的任何位置。)
我的问题是我应该如何检查此异常& 是否有必要在没有代码的情况下添加额外的代码来检查文件是否存在?
答案 0 :(得分:4)
您可以通过xhttp.status
访问HTTP响应代码;通常会将200
(确定)或304
(未修改)视为成功请求。
xhttp=new XMLHttpRequest();
xhttp.open("GET",doc_name,false);
xhttp.send();
if (xhttp.status === 200 || xhttp.status === 304) {
xmlDoc=xhttp.responseXML;
if(xmlDoc==null)
{
xmlDoc=loadXMLDoc(defaultXml);
}
}
确保您首先使用var
声明变量,否则您将拥有隐式全局变量,这是不好的。
同时确保你有充分的理由同步这样做;同步XHR在请求待处理时锁定浏览器。建议异步 高度 。
对于你问题的第二部分,没有问题,所以永远都没有问题;只要您的应用可以处理异常。 (似乎这样做)