Функция обратного вызова тайм-аута ajax

Есть ли способ запустить функцию, если функция jQuery $.ajax попадает в нее timeout?

то есть.

$.ajax({
...
...
,timeout:1000(){do something if timeout)
...

});

Ответы

Ответ 1

$.ajax({
    ...
    timeout: 1000,
    error: function(jqXHR, textStatus, errorThrown) {
        if(textStatus==="timeout") {
           //do something on timeout
        } 
    }
});​

Для получения дополнительной информации ознакомьтесь с документацией jQuery:

http://api.jquery.com/jQuery.ajax/


Edited

Прошло более года с тех пор, как я сначала ответил на это, и возможные значения textStatus изменились на "success", "notmodified", "error", "timeout", "abort", или "parsererror". Для обратных вызовов ошибок возможны только последние четыре состояния.

Также вы можете подключить обработчики ошибок через возвращаемый объект JQuery для отложенного обещания .fail:

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

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