example ajax http

ajax - example - Devolución de redirección como respuesta a la solicitud de XHR



javascript http post (2)

¿Qué sucede si el navegador recibe una respuesta de redirección a una solicitud de Ajax?


¿Qué sucede si el navegador recibe una respuesta de redirección a una solicitud de Ajax?

Si el servidor envía un redireccionamiento (también conocido como respuesta 302 más un encabezado Ubicación:), el navegador sigue automáticamente la redirección. La respuesta a la segunda solicitud (asumiendo que tampoco es otra redirección) es lo que está expuesto a su programa.

De hecho, no tiene la capacidad de detectar si se ha producido una respuesta 302. Si la redirección 302 conduce a 200, entonces su programa actúa de manera idéntica como si la solicitud original condujera directamente a 200.

Esto ha sido mi experiencia y el comportamiento mencionado en la especificación .

Actualización de 2016: ha pasado el tiempo y la buena noticia es que la nueva API fetch () está diseñada para ofrecer un control más detallado de cómo se manejan los redireccionamientos , con un comportamiento predeterminado similar a XHR. Dicho esto, solo funciona donde fetch () se implementa de forma nativa . Las versiones de Polyfill de fetch () basadas en XHR continúan teniendo las limitaciones de XHR . Afortunadamente, el soporte del navegador nativo parece estar muy bien.


La ajax-request seguirá a esa redirección afaik. El contenido real ( .responseText , .responseXML ) será el contenido de la página a la que se le redirige.

Es posible que pueda interceptar el redireccionamiento ( status-code , location-header ) en readyState 2 o 3, pero no está seguro de ello.