Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript XMLHttpRequest.open()异常处理_Javascript_Ajax_Exception Handling_Xmlhttprequest - Fatal编程技术网

Javascript XMLHttpRequest.open()异常处理

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

我有以下代码(仅相关部分):

如果指定的文件不存在,则在加载默认xml文件时运行良好,但如果该文件不存在,则仅在控制台中显示404错误。(此错误不反映页面中除控制台以外的任何位置)


我的问题是,我应该如何检查此异常&当代码在没有文件的情况下运行时,是否需要添加额外的代码来检查文件的存在性?您可以通过
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);
    }
}