我正在使用XMLHttpRequest异步发出http请求:

xhr.open(method, uri, true);

当我发送something时:
xhr.send(something)

服务器关闭时,将引发以下错误:
net::ERR_CONNECTION_REFUSED

如何捕捉和处理此错误?标准的try..catch块不起作用,因为请求是异步的。

提前致谢。

最佳答案

使用onerrorXMLHttpRequest事件:

function aGet(url, cb) {
    var x = new XMLHttpRequest();
    x.onload = function(e) {
        cb(x.responseText)
    };
    x.onerror= function(e) {
        alert("Error fetching " + url);
    };
    x.open("GET", url, true);
    x.send();
}

var dmp = console.log.bind(console); // Dummy callback to dump to console
aGet("/", dmp) // Ok, uses onload to trigger callback
aGet("http://dgfgdf.com/sdfsdf", dmp); // Fails, uses onerror to trigger alert

关于javascript - 从XMLHttpRequest捕获异步网络错误send(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25395119/

10-12 19:26