如何使用全局jQuery Ajax事件处理程序检测超时

Ate*_*ral 6 ajax jquery

附加jQuery.ajaxErrorjQuery.ajaxComplete似乎不接收任何有关提取失败是否是超时结果的信息的全局Ajax事件处理程序.有关如何检测超时的任何指示?检查statusjqXHR对象的属性是否为0是一个可靠的方法吗?

Ole*_*leg 9

也许有一定的差异如何,你所定义的全局的Ajax jQuery的事件处理程序.你没有发布你的代码.我尝试了以下内容

$(document).bind("ajaxError", function (e, jqXHR, ajaxSettings, thrownError) {
    // log the event
});
$(document).bind("ajaxComplete", function (e, jqXHR) {
    // log the event
});
Run Code Online (Sandbox Code Playgroud)

使用jQuery 1.7.1,我可以看到,在超时错误的情况下,始终都ajaxErrorajaxComplete被调用.

您可以在我的测试中显示的简单演示中验证这一点

在此输入图像描述

如果成功或

在此输入图像描述

在超时错误.