Подтвердить что ты не робот

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

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

то есть.

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

});
4b9b3361

Ответ 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  
    }
});