2012-06-22 17 views
8

Tengo una solicitud de publicación jQuery AJAX que inesperadamente desencadena la devolución de llamada error en lugar de success. Una sospecha aleatoria que tengo es el código de estado 302 que está recibiendo, aunque eso puede ser incorrecto.¿Qué respuestas considera jQuery.ajax como "exitosas"?

Miré the documentation, pero siento que una cosa no está clara: ¿Cuál es la definición de jQuery de una solicitud exitosa?

+0

creo que cuando hay respuesta HTTP 200. – jcubic

+1

si no es un código 4xx/5xx, básicamente. 3xx solo debe seguir el redireccionamiento y luego trabajar con el código que devuelve la nueva url, 2xx significa http éxito de todos modos. –

+0

I Las respuestas de thinx 2xx y 3xx son exitosas. Pero no puedo aprobarlo. –

Respuesta

6

Si la respuesta es entre 199 y 300 (> = 200 y < 300) o igual a 304 y el responseText se puede convertir correctamente al tipo de datos que proporciona (texto predeterminado), se considera una solicitud exitosa.

Por ejemplo, si devuelve JSON y obtiene un estado de respuesta 200 pero falla, es más que probable un problema del analizador JSON lo que significa que su JSON no es válido.

Si va a devolver HTML o XML y falla con un estado de respuesta 200, el responseText no pudo ser convertido a HTML o XML, respectivamente (comúnmente ocurre en IE con inválida html/xml)

+0

Lo probé, y un código de estado simple de 302 da como resultado un error. Probablemente sea mejor, en aras de la simplicidad, que las respuestas afirmativas a las solicitudes AJAX siempre sean 200s. –

+1

¡Muy útil! Busqué el código exacto, la determinación se produce dentro del método de devolución de llamada interno [done] (https://github.com/jquery/jquery/blob/0d68b7877f761264bfe4950e4df156b854925a6b/src/ajax.js#L655). Específicamente: [comprobación del código de estado] (https://github.com/jquery/jquery/blob/0d68b7877f761264bfe4950e4df156b854925a6b/src/ajax.js#L683), [verificación de análisis de respuesta] (https://github.com/jquery/jquery /blob/0d68b7877f761264bfe4950e4df156b854925a6b/src/ajax.js#L721) – pimlottc

Cuestiones relacionadas