2011-09-28 10 views
5

Quindi ho finalmente provato a provare AJAX di nuovo (piuttosto che gli iframe nascosti), e ora ricordo perché ho odiato così tanto AJAX in primo luogo.AJAX restituisce codici di stato insoliti

È uno script semplice che richiede al server il numero di messaggi privati ​​che l'utente ha ricevuto. Il server risponde con un singolo numero e lo script aggiorna l'indicatore e imposta un timeout per cinque secondi per eseguire nuovamente la query.

In rare occasioni (di solito quando vado AFK per un po '), comincio ad ottenere i codici di stato HTTP più bizzarri.

Su Chrome: "richiesta AJAX non è riuscito a recuperare /ajax/network.php, di stato HTTP 0"
Sulla IE: "richiesta AJAX non è riuscito a recuperare /ajax/network.php, di stato HTTP 12029"

Nessuno di questi codici è valido. Cosa sta succedendo qui e come posso evitare che accada?

+0

Questi errori sono ripetibili o si verificano completamente a caso? – Alex

risposta

6

Questo è un aspetto fastidioso di AJAX. Trovo che sia meglio considerare semplicemente tutti gli stati non 200 come un errore. In realtà, non mostrerai ai tuoi utenti messaggi di errore specifici relativi al risultato reale ("Si è verificato un problema"), quindi non mi preoccuperei eccessivamente di condizioni di errore inconsistenti.

jQuery normalizza parte del comportamento AJAX, quindi è possibile che si desideri anche utilizzarlo.

A proposito, l'errore 0 in Chrome e 12029 in IE indicano problemi di connessione; dal momento che ciò non ha nulla a che fare con HTTP, è per questo che vengono mostrati i codici non validi.

+0

Ok, ho aggiunto un parametro alla mia funzione AJAX 'silent', che sopprime l'avviso del messaggio di errore. I messaggi di errore sono utili per le azioni avviate dall'utente, ma su questa cosa di aggiornamento automatico sono fastidiosi. Grazie per la risposta, accetterà quando il limite di tempo lo consentirà. –

+3

Solo una nota per altri googler: 12029 sembra essere una connessione interrotta. Rif: http://stackoverflow.com/questions/872206/http-status-code-0-what-does-this-mean-in-ms-xmlhttp/905751#905751 –

+0

Solo un "grazie" quasi 4 anni dopo da un "amico googler". D ** n IE8 @AndrewDunkman – jonayreyes

Problemi correlati