Jquery ajax超时回调函数

Jquery ajax超时回调函数,jquery,ajax,Jquery,Ajax,如果jQuery的$.ajax函数在超时时运行,有没有办法运行该函数 i、 e 有关更多信息,请查看jQuery文档: 已编辑 我最初回答这个问题已经有一年多了,textStatus可能的值已更改为“success”、“notmodified”、“error”、“timeout”、“abort”、或“parserror”。对于错误回调,只能使用最后四种状态 您现在还可以通过返回的JQuery延迟承诺对象的.fail方法连接错误处理程序: var promise = $.ajax({ time

如果jQuery的$.ajax函数在超时时运行,有没有办法运行该函数

i、 e

有关更多信息,请查看jQuery文档:


已编辑

我最初回答这个问题已经有一年多了,
textStatus
可能的值已更改为
“success”、“notmodified”、“error”、“timeout”、“abort”、
“parserror”
。对于错误回调,只能使用最后四种状态

您现在还可以通过返回的JQuery延迟承诺对象的
.fail
方法连接错误处理程序:

var promise = $.ajax({ timeout: 1000 });

promise.fail(function(jqXHR, textStatus) {
    if(textStatus==="timeout") {
        // handle timeout  
    }
});

通常,好的答案会被解释,而不仅仅是删除一段代码。@Paulpro我不同意。除了有时等于“timeout”的字符串之外,没有解释传递给error函数的内容。值得一提的是:“超时时间从发出$.ajax调用的点开始;如果有几个其他请求正在进行,并且浏览器没有可用的连接,则请求可能在发送之前超时。”在这种情况下,只调用
complete
处理程序:无论
success
还是
error
处理程序似乎都没有运行。可能是您想要的:
$.ajax({
    ...
    timeout: 1000,
    error: function(jqXHR, textStatus, errorThrown) {
        if(textStatus==="timeout") {
           //do something on timeout
        } 
    }
});​
var promise = $.ajax({ timeout: 1000 });

promise.fail(function(jqXHR, textStatus) {
    if(textStatus==="timeout") {
        // handle timeout  
    }
});