2012-06-26 9 views
21

Ho un'applicazione web che si blocca su richieste Ajax con google chrome (funziona con tutti gli altri browser Web che è stato testato). Dopo il debug ho scoperto che l'errore è causato da response.responseText non definito. L'oggetto XHR si presenta così:Come eseguire il debug di una richiesta Ajax non riuscita in google chrome?

argument: undefined 
isAbort: false 
isTimeout: undefined 
status: 0 
statusText: "communication failure" 
tId: 3 

Nel debugger nella scheda 'rete' ho "(non)", tuttavia tutte le intestazioni ci sono e ho anche possibile copiare nella clipboard il corpo della risposta (che è un JSON valido).

La mia domanda è: come posso eseguire il debug di questo problema? Dove trovare ulteriori informazioni, che cosa causa la mancata riuscita di questa richiesta?

+0

Si prega di fornire maggiori informazioni sul server e l'infrastruttura di rete. L'errore si verifica ogni volta che si invia la richiesta o sporadicamente? – Stan

+0

Puoi mostrare come stai facendo la chiamata AJAX? Inoltre, puoi dire in quali browser funziona? – Uooo

+0

Non si ricevono errori nella console JavaScript? –

risposta

4

La prima cosa da verificare è che i dati provenienti dalla risposta siano JSON validi. Basta passarlo attraverso un validatore JSON come questo JSONLint online: http://jsonlint.com/

Suppongo che tu stia usando qualcosa come jQuery per fare le tue richieste AJAX. In tal caso, assicurati di utilizzare la versione di sviluppo di tale libreria. Ora che stai usando la versione di sviluppo (non compressa) dello script, trova la particolare funzione che stai usando (ad esempio $ .ajax) e poi, all'interno dell'ispettore Chrome, inserisci un punto di interruzione nel codice in cui la risposta AJAX è la prima gestito (ad esempio https://github.com/jquery/jquery/blob/master/src/ajax.js#L579). Quindi procedere al passaggio del codice, esaminando vari valori di ritorno per vedere esattamente cosa sta andando storto.

Se non si sta utilizzando qualcosa come jQuery per effettuare chiamate AJAX, quindi si consiglia di utilizzare un framework per evitare possibili problemi di compatibilità tra browser come si potrebbe essere in questo momento.

+0

Non sono sicuro se questa è la correzione corretta, come era molto tempo fa, ma non pensavo che il json non valido potesse essere un motivo per visualizzare la richiesta come fallita. Quindi accetto il tuo anwer sperando che se lo incontrassi in futuro, sarebbe utile. – zefciu

13

Ho finalmente trovato la soluzione al mio problema: AdBlocks, questo plugin è una delle cose più utili qui intorno, ma quando blocca qualcosa nel tuo sito web, non dice perché!

+3

GRAZIE per averlo indicato. Ho passato il meglio del pomeriggio sbattendo la testa sopra questo. – applepie

+2

[HTTPs Everywhere] (https://www.eff.org/https-everywhere) ha causato i miei problemi. – Hengjie

+1

grazie, mi hai salvato la giornata! AdBlocks impedisce richieste Ajax come annunci/add ... escluso il dominio da adBlocks risolto il mio problema! – RezaSh

Problemi correlati