Javascript XMLHttpRequest.open()异常处理
我有以下代码(仅相关部分): 如果指定的文件不存在,则在加载默认xml文件时运行良好,但如果该文件不存在,则仅在控制台中显示404错误。(此错误不反映页面中除控制台以外的任何位置)Javascript XMLHttpRequest.open()异常处理,javascript,ajax,exception-handling,xmlhttprequest,Javascript,Ajax,Exception Handling,Xmlhttprequest,我有以下代码(仅相关部分): 如果指定的文件不存在,则在加载默认xml文件时运行良好,但如果该文件不存在,则仅在控制台中显示404错误。(此错误不反映页面中除控制台以外的任何位置) 我的问题是,我应该如何检查此异常&当代码在没有文件的情况下运行时,是否需要添加额外的代码来检查文件的存在性?您可以通过xhttp.status访问HTTP响应代码;200(正常)或304(未修改)通常被视为成功的请求 xhttp=new XMLHttpRequest(); xhttp.open("GET",doc_n
我的问题是,我应该如何检查此异常&当代码在没有文件的情况下运行时,是否需要添加额外的代码来检查文件的存在性?您可以通过
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在请求挂起时锁定浏览器。强烈建议将其设置为异步
关于你问题的第二部分,没有任何问题;只要你的应用程序可以处理异常。(这似乎是可以的)是的,我知道,我正在使用var声明变量并使其同步(出于某种原因),文件很小,因此使其同步不是问题。但我真的需要进行此检查吗?因为没有它,代码运行良好?控制台中的错误有什么缺点吗?@gopi1410:没有问题;只要你的应用程序能够处理它(似乎是这样)。试试这个,我想你在找这个:
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);
}
}