Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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 处理同步XHR连接错误_Javascript_Xmlhttprequest_Jscript_Wsh - Fatal编程技术网

Javascript 处理同步XHR连接错误

Javascript 处理同步XHR连接错误,javascript,xmlhttprequest,jscript,wsh,Javascript,Xmlhttprequest,Jscript,Wsh,我一直在搜索,但找不到有关此问题的任何文档:当使用Microsoft提供的XMLHttpRequest接口发出同步HTTP请求时,如何处理连接/网络相关错误 我在wscript下工作,制作一个HTTP请求包装器,我想知道如何使用XMLHttpRequest接口处理HTTP请求的不同连接/网络错误(与服务器响应报告的错误相反) 为了澄清,我不仅想知道是否发生了连接/网络错误,还想知道如何确定发生了哪种类型的错误,以便不同的错误会导致不同的处理。例如,连接超时错误、连接被拒绝错误和dns解析错误之间

我一直在搜索,但找不到有关此问题的任何文档:当使用Microsoft提供的XMLHttpRequest接口发出同步HTTP请求时,如何处理连接/网络相关错误

我在wscript下工作,制作一个HTTP请求包装器,我想知道如何使用XMLHttpRequest接口处理HTTP请求的不同连接/网络错误(与服务器响应报告的错误相反)

为了澄清,我不仅想知道是否发生了连接/网络错误,还想知道如何确定发生了哪种类型的错误,以便不同的错误会导致不同的处理。例如,
连接超时
错误、
连接被拒绝
错误和
dns解析
错误之间会有所不同

// httpObj is a valid Microsoft/ActiveX provided XMLHttpRequest object name
function () {

    var request = new ActiveXObject(httpObj);
    request.open(this.httpMethod, this.httpUrl, false);
    request.timeout = this.httpTimeout;
    request.setRequestHeader("Connection", "close");
    request.send(this.httpData);

    // How would I handle connection/network-related errors?
}
(我从未使用过ActiveX请求,但我假设它们的工作方式类似于
XMLHttpRequest
;如果我错了,我会很高兴地删除这个答案。)

如果脚本能够从服务器读取HTTP错误响应,则请求对象的
status
属性将设置为HTTP错误代码(
404
500
,等等),并且
statusText
属性将设置为HTTP错误的描述

否则,
status
属性将为
0
,表示网络故障或缺少跨源CORS权限

function () {
    ...
    request.send(this.httpData);

    if(request.status == 0) {
        // no response from server, error or otherwise
    }
    if(request.status == 404) {
        // there was a response from the server; it was a 404
    }
}

XHRAPI不公开任何区分网络错误类型的方法。ActiveX对象可能有办法做到这一点,但我不知道它会是什么,如果它存在的话。

我不想处理响应状态错误(通过服务器重新运行的错误),只想处理连接问题连接超时和DNS解析错误之间有何区别,例如?@srject我以为您想区分HTTP错误响应和网络错误,但我从您的编辑中看到,您实际上想区分不同类型的连接错误。这不能使用XHRAPI来完成,因为XHRAPI不区分网络错误的类型。也许可以使用一些专有的ActiveX行为,但如果可能的话,我不知道如何使用;ActiveX XHR和XHR api之间没有什么区别,因为界面最初是MS/IE/ActiveX的发明。如果用户可能报告未知的专有界面/行为,我不会接受这个答案。如果没有人回答,我就接受你的回答。