2011-11-08 10 views
13

Hay una página (URL), solicito que por XMLHttpRequest, pero ahora no recibo respuesta de dirección URL solicitada, es dirigir la petición a otra página,¿Cómo obtener la URL de respuesta en XMLHttpRequest?

solicitando --->page.php
obtener respuesta de>directedpage.php

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

Respuesta

24

La URL final (después de seguir todos los redireccionamientos) está disponible en el responseURL attribute de una instancia XMLHttpRequest. Esta característica es nueva y sólo está soportado en Firefox 32 estable en septiembre de 2014 [ref] y Chrome 37.0.2031.0 estable en agosto de 2014 [ref] (y probablemente también Opera 24). responseURL aún no es compatible con navegadores IE 11 o Safari 7 y anteriores. Para estos navegadores, la respuesta anterior sigue siendo verdadera:

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

Referencias:

+0

OK, pero, es que alguien sabe por qué? Seguridad? ¿Qué ataque debería estar disponible con la url de respuesta? (Proporciona la URL de respuesta solo si la URL de respuesta tiene el mismo origen que la URL original) –

+0

@JulienPalard [La especificación] (http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send() -method) exige que los redireccionamientos se tengan que seguir de forma transparente. –

+0

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

Cuestiones relacionadas