Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
如何使用全局jQuery Ajax事件处理程序检测超时_Jquery_Ajax - Fatal编程技术网

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

如何使用全局jQuery Ajax事件处理程序检测超时,jquery,ajax,Jquery,Ajax,与jQuery.ajaxError或jQuery.ajaxComplete附加的全局Ajax事件处理程序似乎没有收到任何关于提取失败是否是由于超时导致的信息。有关于如何检测超时的提示吗?检查jqXHR对象的status属性是否为0是一种可靠的方法吗?在定义全局jQuery Ajax事件处理程序时可能存在一些差异。你没有发布你的代码。我尝试了以下方法 $(document).bind("ajaxError", function (e, jqXHR, ajaxSettings, thrownErro

jQuery.ajaxError
jQuery.ajaxComplete
附加的全局Ajax事件处理程序似乎没有收到任何关于提取失败是否是由于超时导致的信息。有关于如何检测超时的提示吗?检查jqXHR对象的
status
属性是否为0是一种可靠的方法吗?

在定义全局jQuery Ajax事件处理程序时可能存在一些差异。你没有发布你的代码。我尝试了以下方法

$(document).bind("ajaxError", function (e, jqXHR, ajaxSettings, thrownError) {
    // log the event
});
$(document).bind("ajaxComplete", function (e, jqXHR) {
    // log the event
});
使用jquery1.7.1,我可以看到,在超时错误的情况下,总是调用
ajaxError
ajaxComplete

您可以在“我的测试”中的哪个显示中验证这一点

在成功或失败的情况下


超时错误。

Hi Oleg。在我的发现中,我无法从408报头中得到返回为“超时”的特定错误。相反,我收到一条非常普遍的消息“error”。你怎么会出现这个一致的“超时”错误?谢谢。事实上,我刚注意到你是怎么做到的。实际上,你根本没有这么做,而是人为地设置了一个超时。在现实世界中,您将以不同的方式确定服务器超时。@emeraldcode.com:“超时”可以用不同的方式解释。在问题中,有人提到“jqXHR对象的状态属性为0”。这是客户端超时的典型情况。如果状态代码为408,则问题似乎更简单。一个仅接收错误,并且可以检查状态代码是否为408。此外,在这个问题中,我们会特别询问全局事件处理程序中存在的问题,因此我们可以假设在
错误处理程序中捕获
超时
的问题不存在。@emeraldcode.com:不客气!顺便说一下,状态代码为0的行为记录在W3上的XMLHttpRequest规范中:请参阅和。您可以看到,在“某种类型的网络错误或流产”的情况下,它将被设置为“错误标志”,在
XMLHttpRequest
status
属性将为0。值得注意的是,从何处获取statusText:jqXHR.statusText