JQuery Ajax – Come rilevare l’errore della connessione di rete quando si effettua una chiamata Ajax

Ho qualche codice JavaScript JQuery che fa una chiamata Ajax al server ogni 5 minuti, è per mantenere viva la sessione del server e mantenere l’utente loggato. Sto usando il metodo $.ajax() in JQuery. Questa funzione sembra avere una proprietà di ‘errore’ che sto cercando di utilizzare nel caso in cui la connessione internet dell’utente vada giù in modo che lo script KeepAlive continui a funzionare. Sto usando il seguente codice:

 var keepAliveTimeout = 1000 * 10; function keepSessionAlive() { $.ajax( { type: 'GET', url: 'http://www.mywebapp.com/keepAlive', success: function(data) { alert('Success'); setTimeout(function() { keepSessionAlive(); }, keepAliveTimeout); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert('Failure'); setTimeout(function() { keepSessionAlive(); }, keepAliveTimeout); } }); } 

Quando lo eseguo, visualizzerò il popup “Successo” sullo schermo in una casella di avviso ogni 10 secondi, che va bene. Tuttavia, non appena ho scollegato il cavo di rete, non ottengo nulla, mi aspettavo che la funzione di errore venisse chiamata e vedessi una casella di avviso “Failure”, ma non succede nulla.

Sono corretto assumendo che la funzione ‘errore’ sia solo per i codici di stato non ‘200’ restituiti dal server? C’è un modo per rilevare problemi di connessione di rete quando si effettua una chiamata Ajax?