2010-10-25 21 views
11

Vado attraverso la sorgente di scoprire la critiera per jQuery.ajax() 's metodi di successo/insuccesso chiamati. Non si basa solo sul codice di stato, sembra coinvolgere anche il tipo di dati.jQuery.ajax() chiamate di successo/errore chiamate quando?

ho sempre ricorrere alla scrittura di gestori di errori personalizzati utilizzando il '-callback complete'.

esattamente quali sono le critera per le chiamate successo/insuccesso?

+0

Ecco un esempio per la creazione di errori personalizzati: http://stackoverflow.com/questions/1637019/how-to-get-the-jquery-ajax-error-response-text – jantimon

risposta

10

come hai detto, dipende dal tipo di dati, script è uno speciale per esempio, il controllo è:

Per altre richieste si tratta di controlli il seguente:

Nota: Quanto sopra è per jQuery 1.4.3, jQuery 1.4.2 e sotto aveva un ulteriore "successo" scenario where a response code of 0 was also "successful", questo è stato fatto perché Opera restituisce un 0 quando è veramente a 304. Questo comportamento è errato e il team jQuery ha optato per drop support for this quirk, poiché ha causato falsi positivi in ​​altri casi di codice di risposta effettivi 0.

+1

Grazie! Risposta molto completa L'impostazione di dataType su 'testo' dovrebbe escludere l'analisi della risposta (sopprimendo quindi possibili 'parseerror')? Mi dà ancora un segnale, qualche idea di cosa potrebbe essere la causa di questo? – bjornl

+1

@bjornl - Probabilmente controllando l'intestazione del tipo di contenuto e trovando "json", tenterà di analizzarlo in caso affermativo. –

+0

Content-Type è impostato su 'application/octet-stream' - è un protocollo REST – bjornl