2012-06-22 14 views
8

Ho una richiesta postazione jQuery AJAX che attiva in modo imprevisto la funzione di richiamata error anziché success. Un sospetto casuale che ho è il codice di stato 302 che sta ricevendo, anche se potrebbe essere sbagliato.Quali risposte considera jQuery.ajax "successo"?

Ho guardato a the documentation, ma mi sembra che una cosa sia un po 'oscura: qual è la definizione di jQuery di una richiesta di successo?

+0

Penso che quando HTML o XML c'è una risposta HTTP 200. – jcubic

+1

se non è un codice 4xx/5xx, in pratica. 3xx dovrebbe solo seguire il reindirizzamento quindi lavorare con il codice che il nuovo URL restituisce, 2xx significa comunque successo http. –

+0

Le risposte thinx 2xx e 3xx sono riuscite. Ma non posso approvarlo. –

risposta

6

Se la risposta è compresa tra 199 e 300 (> = 200 e < 300) o uguale a 304 e il responseText può essere convertito correttamente nel dataType fornito dall'utente (testo predefinito), viene considerato una richiesta corretta.

Ad esempio, se si restituisce JSON e si ottiene uno stato di 200 risposte, ma non riesce, è più che probabile un problema di parser JSON che significa che il proprio JSON non è valido.

Se si restituisce HTML o XML e non riesce con uno stato 200 risposta, il responseText non poteva essere convertito rispettivamente (accade comunemente in IE con validi HTML/XML)

+0

L'ho provato e un semplice codice di stato di 302 genera un errore. Probabilmente è meglio per la semplicità, per le risposte affermative alle richieste di AJAX di essere sempre 200. –

+1

Molto utile! Ho cercato il codice esatto, la determinazione si verifica all'interno del metodo di callback interno [eseguito] (https://github.com/jquery/jquery/blob/0d68b7877f761264bfe4950e4df156b854925a6b/src/ajax.js#L655). In particolare: [controllo codice stato] (https://github.com/jquery/jquery/blob/0d68b7877f761264bfe4950e4df156b854925a6b/src/ajax.js#L683), [verifica parsing risposta] (https://github.com/jquery/jquery /blob/0d68b7877f761264bfe4950e4df156b854925a6b/src/ajax.js#L721) – pimlottc

Problemi correlati