2013-05-14 19 views
20

Czy istnieje sposób uruchomienia funkcji, jeśli funkcja $ .ajax jQuery trafi pod numer timeout?Funkcja wywołania zwrotnego ajax timeout

tj

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

}); 
+2

Może to, co chcesz: http://stackoverflow.com/questions/3543683/jquery-ajax-timeout -setting – Eli

Odpowiedz

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

Aby uzyskać więcej informacji, zapoznaj się z dokumentacją jQuery:

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


redakcją

Minął ponad rok, odkąd początkowo odpowiedziałem na to, a możliwe wartości zmieniły się na "success", "notmodified", "error", "timeout", "abort", lub "parsererror". W przypadku błędów zwrotnych możliwe są tylko cztery ostatnie stany.

Ponadto można teraz podłączyć swoje obsługi błędów przez Zwracany JQuery odroczonym obietnica obiektu .fail metody:

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

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

Zazwyczaj wyjaśnia się dobre odpowiedzi, a nie po prostu zrzucają blok kodu. – Daedalus

+13

@Daedalus W tym przypadku powiedziałbym, że kod jest oczywisty. – Paulpro

+1

@Paulpro Nie zgadzam się. Nie jest wyjaśnione, co jest przekazywane do funkcji błędu, inne niż ciąg, który czasami jest równy "timeout". – Daedalus

Powiązane problemy