¿Cómo obtener la URL de respuesta en XMLHttpRequest?

Hay una página (url), la solicito por XMLHttpRequest, pero no obtengo respuesta de la URL solicitada, está dirigiendo la solicitud a otra página,

solicitando ---> page.php
obteniendo respuesta de> directionpage.php

y la pregunta es ¿cómo puedo obtener la URL de respuesta? (dirigidopage.php en el ejemplo)

preguntado el 08 de noviembre de 11 a las 19:11

1 Respuestas

La URL final (después de seguir todos los redireccionamientos) está disponible en la responseURL atributo menos XMLHttpRequest ejemplo. Esta función es nueva y solo se admite en Firefox 32 estable en septiembre de 2014 [árbitro] y Chrome 37.0.2031.0 estable en agosto de 2014 [árbitro] (y probablemente también Opera 24). responseURL (todavía) no es compatible con IE 11 o Safari 7 y los navegadores anteriores. Para estos navegadores, la respuesta anterior sigue siendo cierta:

XMLHttpRequest sigue automáticamente las redirecciones, sin guardar las URL servidas en una propiedad. los Location El encabezado tampoco se puede recuperar a través del .getResponseHeader().

Referencias:

Respondido 13 Jul 14, 15:07

Está bien, pero, ¿alguien sabe por qué? Seguridad? ¿Qué ataque debería estar disponible con la URL de respuesta? (Dar la URL de respuesta solo si la URL de respuesta tiene el mismo origen que la URL original) - Julien Palard

@JulienPalard La especificación exige que las redirecciones se sigan de forma transparente. - Rob W

@RobW: No entiendo, si tengo estoA=302—B=302—>C=302—>A=200. ¿Qué responseURL devolverá? ¿El ᴜʀʟ de C o A? - user2284570

@ user2284570 La URL del último A. - Rob W

@traxium No es posible conseguir responseURL para solicitudes de origen cruzado bloqueadas. Si el servidor no respondió con los encabezados de respuesta CORS esperados. entonces el navegador debe asumir que el servidor no está dispuesto a ofrecer voluntariamente información confidencial y, por lo tanto, no filtrará el objetivo de redirección al script. - Rob W

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.