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