функция обратного вызова ajax timeout

20

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

то есть.

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

});
Теги:

1 ответ

40
Лучший ответ
$.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  
    }
});
  • 4
    Обычно хорошие ответы объясняются, а не просто удаляются блоки кода.
  • 13
    @Daedalus В этом случае я бы сказал, что код не требует пояснений.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню