thread the example javascript jquery xmlhttprequest

the - Captura la ubicación de redireccionamiento de javascript XMLHttpRequest



xmlhttprequest post json (2)

1) Use un código de estado diferente al 301 (2 **) (si lo solicita ajax) y maneje la redirección en el lado del cliente:

var STATUS = { REDIRECT: 280 }; $.post(''/redirected'', {}, function(response, status, request) { if (status == STATUS.REDIRECT) { // you need to return the redirect url location.href = response.redirectUrl; } else { $(''#content'').html(request.responseText); } });

2) NO REDIRECTE:

Lo uso en "patrón de redireccionamiento" = redireccionamiento después de la solicitud posterior (no desea permitir que el usuario actualice la solicitud posterior, etc.)

Con la solicitud de ajax, esto no es necesario, por lo tanto, cuando la solicitud de publicación es ajax, en lugar de eso reenvío (solo reenvío a un controlador diferente, depende del marco del lado del servidor o de lo que esté usando ...). Las solicitudes POST no son almacenadas en caché por los navegadores.

En realidad, no sé cuál es la razón por la que lo necesita, por lo que podría no ser tan útil para usted. Esto es útil cuando el servidor devuelve respuestas diferentes para las solicitudes ajax que las solicitudes comunes, porque cuando el navegador redirecciona la solicitud ajax, la solicitud redirigida no es XMLHttpRequest ...

[actualizado]

Puede acceder a los encabezados (de solicitud redirigida) así:

$.post(''redirected'', {}, function(r, s, req) { req.getAllResponseHeaders(); req.getResponseHeader(''Location''); });

Debería haber un encabezado ''Ubicación'', pero depende del servidor, qué encabezados se devuelven ...

Sé que no puedes, al usar un XMLHttpRequest, interceptar un redireccionamiento o evitarlo, ya que el navegador lo seguirá de forma transparente, pero es posible

A. Determine si una solicitud se redirige, o

B. ¿Determinar a dónde se redirige? (Suponiendo que la respuesta no da pistas)

Código de ejemplo:

$.post("/my-url-that-redirects/", {}, function(response, statusCode, xmlHttpRequest){ //Somehow grab the location it redirected to } );

En mi caso, Firebug mostrará primero un POST a la url, luego un GET a la url redirigida. ¿Se puede capturar esa ubicación GET?


Después de 4 años, es posible encontrar la última ubicación de redireccionamiento utilizando responseURL desde la instancia XHR en Chrome 42+ (Opera 29+) y Firefox 39+, pero aún no está disponible en IE, Edge o safari.