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

时间:2016-11-07 23:37:27

标签: javascript ajax xmlhttprequest onerror

我正在尝试通过附加到XMLHTTPRequest对象(本机JS)的onerror处理程序来捕获网络错误,例如 ERR_CONNECTION_RESET 。作为我的预备研究的一部分,我写了一个快速存根,以查看传递给onerror处理程序的内容。测试这个存根,我发现onerror处理程序收到了一个ProgressEvent对象,它没有包含任何有用的东西来检测我想要捕获的错误 - 它包含的是一个包含字符串“error”的类型属性。

有没有办法获取在onerror处理程序中生成的实际错误对象?只有我可能更愿意在我受影响的AJAX代码中捕获网络错误,而不是使用全局window.onerror处理程序来捕获每个未捕获的异常(这将是非常繁琐的使用)。

我用来查找传递给onerror处理程序的快速存根看起来像这样:

function TrapAJAXError(e)
{
var test = e;

}

是的,我知道,极端微不足道,但有用的是让我找出传递给处理程序的内容。

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

我可以在我的onerror处理程序中检测网络错误的性质,还是JS的另一个怪癖迫使我经历可怕的全局错误处理程序路由?

0 个答案:

没有答案