2013-06-05 6 views
7

Ho creato l'applicazione web di primavera con jquery. Per ogni chiamata ajax con $ .get o $ .post (NON $ .ajax).

Ma non ho gestito alcun timeout ajax o errore di jax. Ora la mia applicazione è distribuita nel server, non posso apportare modifiche importanti.

Pls mi aiutano come gestire la AJAX Timeout per l'intera applicazione web e dovrei alert ("Ajax Timeout") a livello globale. inoltre qualunque sia l'errore ajax, dovrei avvisare il messaggio di errore all'utente.

Ho sentito parlare $ .ajaxSetup e $ .ajaxError
ma come usarli nella mia applicazione web, non ho bisogno di aggiungerlo in document.ready ??

risposta

22

È possibile collegare un ajaxError gestore per documento

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

Modifica: Per impostare Ajax timeout a livello globale, è necessario utilizzare ajaxSetup

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

Nota: $.ajaxSetup deve essere impostato prima di altre chiamate Ajax.

+0

come impostare il timeout ajax globalmente? –

+0

@JagadeeshP controlla la modifica – skafandri

+0

+1 per l'impostazione globale. – Esteban

0

Ecco come impostare ajaxError nell'applicazione.

Fare questo una volta nel documento pronto.

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

Il xhr.status è il codice di stato HTTP restituito, il più comune 404 (non trovato), 201 (creato), 403 (proibito), per un elenco di questi codici di stato si riferiscono a: http://www.w3.org/Protocols/HTTP/HTRESP.html.

+1

come impostare il timeout ajax a livello globale? –

0

È possibile utilizzare $ .ajaxSetup ({timeout: 100});