2013-06-05 7 views
7

Stworzyłem aplikację internetową wiosenną z jquery. Dla każdego wywołania ajax używają $ .get lub $ .post (NOT $ .ajax).

Ale nie poradziłem sobie z żadnymi błędami ajaxowymi ani błędem ajax. Teraz moja aplikacja jest wdrożona na serwerze, nie mogę wprowadzić żadnych większych zmian.

Pls mi pomóc w jaki sposób poradzić sobie z AJAX Timeout dla całej aplikacji internetowej i ja powinniśmy alert ("Ajax Timeout") globalnie. dodatkowo niezależnie od błędu ajax, powinienem ostrzec wiadomość o błędzie do użytkownika.

Słyszałem o $ .ajaxSetup i $ .ajaxError
ale jak ich używać w mojej aplikacji sieci web, Czy muszę dodawać go w document.ready ??

Odpowiedz

22

Możesz dołączyć ajaxError obsługi do dokument

$(function(){ 
    $(document).ajaxError(function(event, request, settings) { 
     //Do whatever 
    }); 
}); 

EDIT: Aby ustawić limit czasu Ajax globalnie, trzeba użyć ajaxSetup

$.ajaxSetup({ 
    timeout: 2000 //Time in milliseconds 
}); 

Uwaga: $.ajaxSetup powinien być ustawiony przed innymi wywołaniami Ajax.

+0

jak ustawić czas oczekiwania ajax na świecie? –

+0

@JagadeeshP sprawdź edycję – skafandri

+0

+1 dla ustawienia globalnego. – Esteban

0

Oto jak skonfigurować ajaxError w swojej aplikacji.

Wykonaj ten raz wewnątrz dokumentu gotowy.

$(document).ajaxError(function (event, xhr) { 
    console.log(xhr.status + ': ' + xhr.statusText); 
}); 

xhr.status jest zwrócony kod stanu HTTP, najczęściej 404 (nie znaleziono), 201 (stworzony) 403 (zabronione), aby wyświetlić listę tych kodów stanu odnoszą się do: http://www.w3.org/Protocols/HTTP/HTRESP.html.

+1

jak ustawić czas oczekiwania ajax na świecie? –

0

Można użyć $ .ajaxSetup ({timeout: 100});