Estoy siguiendo el patrón PRG (Post-Redirect-Get) en mi aplicación web, y uso algo como lo siguiente para hacer la mayoría de mis POST:Obteniendo la URL real después de una POST que redirigió usando jquery .ajax()
$.ajax({
type: 'POST',
url: 'A.html',
data: '....',
statusCode: {
302: function() {
alert("302"); // this is never called
},
200: function() {
alert("200");
},
},
success: function (data, textstatus) {
alert('You are now at URL: ' + ??);
},
error: function (data) {
},
complete: function (jqXHR, textstatus) {
alert('You are now at URL: ' + ??);
},
});
Necesito obtener la URL DESPUÉS de que se haya producido cualquier redirección, es decir, la URL del GET final que llamó la función .ajax(). Por ejemplo, una POST a A.html puede redirigirse a B.html o C.html (siempre a través de 302's). ¿Cómo obtengo la URL final?
Estoy usando jquery 1.5.1, y usando un proxy he visto que jquery sigue silenciosamente los redireccionamientos, lo cual me alegra. No me importan las URL que respondieron con 302. Me gustaría saber la URL de la solicitud final en el momento en que se activan los enlaces "success" o "complete" de .ajax().
enviar esa URL con los datos y recuperar en la parte de 'éxito' de ajax – diEcho
Puede elaborar con el ejemplo y especifique si los redireccionamientos anidados están sucediendo. Elaborarlo con el ejemplo-- Por ejemplo, un POST a A.html puede redirigirse a B.html o C.html (siempre a través de 302). ¿Cómo obtengo la URL final? –
He confirmado el uso de un proxy que la POST a A.html responde con un "302 Encontrado" y Ubicación: B.html. Sin embargo, la clave del problema es que no puedo consultar javascript/jquery para obtener pruebas de que fui redireccionado a B.html en cualquier lugar. Si pido $ (this) .url, obtengo "A.html", lo mismo para window.location, etc. –