Javascript 通过XMLHttpRequest onerror处理程序捕获网络错误

Javascript 通过XMLHttpRequest onerror处理程序捕获网络错误,javascript,ajax,xmlhttprequest,onerror,Javascript,Ajax,Xmlhttprequest,Onerror,我试图通过连接到XMLHTTPRequest对象(本机JS)的OneError处理程序捕获网络错误,例如错误连接重置。作为我初步研究的一部分,我写了一个快速存根来查看传递给onerror处理程序的内容。在测试这个存根时,我发现OneError处理程序接收到一个ProgressEvent对象,该对象不包含任何对检测我试图捕获的错误有用的内容—它只包含一个包含字符串“error”的类型属性 是否有一种方法可以获取从onerror处理程序中生成的实际错误对象?如果可能的话,我只希望在受影响的AJAX代

我试图通过连接到XMLHTTPRequest对象(本机JS)的OneError处理程序捕获网络错误,例如错误连接重置。作为我初步研究的一部分,我写了一个快速存根来查看传递给onerror处理程序的内容。在测试这个存根时,我发现OneError处理程序接收到一个ProgressEvent对象,该对象不包含任何对检测我试图捕获的错误有用的内容—它只包含一个包含字符串“error”的类型属性

是否有一种方法可以获取从onerror处理程序中生成的实际错误对象?如果可能的话,我只希望在受影响的AJAX代码中捕获网络错误,而不是使用全局window.onerror处理程序来捕获所有未捕获的异常(这将非常繁琐)

我用来找出传递给OneError处理程序的内容的快速存根如下所示:

function TrapAJAXError(e)
{
var test = e;

}
是的,我知道,在极端情况下是微不足道的,但是非常有用,可以让我找到传递给处理程序的内容

在调试器中检查变量“test”发现它是一个ProgressEvent对象,没有任何与错误对象连接的迹象。当我故意触发网络错误时,onerror处理程序按预期启动,但我在ProgressEvent对象中找不到允许我查找已抛出的错误对象的任何内容


我能在OneError处理程序中检测到网络错误的性质吗?或者这是JS的另一个怪癖,迫使我通过可怕的全局错误处理程序路径吗?

事情变得更糟了。我尝试了一个全局window.onerror处理程序,而诸如ERR_CONNECTION_densed之类的网络错误不会导致将错误对象传递给window.onerror处理程序。我以为Chrome应该支持传递的错误对象?更奇怪的是,只有当onerror处理程序也附加到XmlHttpRequest对象时,才会调用window.onerror处理程序。发生什么事?