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.