Tengo un enlace que envía una POST de Ajax para realizar una acción. Si el usuario aún no ha iniciado sesión, el método de acción devuelve un redireccionamiento 302 a la página de inicio de sesión. Si esto sucede, quiero ver el redireccionamiento, para poder mostrar el formulario de inicio de sesión en un lightbox.¿Cómo evitar que jQuery ajax siga una redirección después de una publicación?
Sin embargo, parece que jQuery sigue la redirección sin devolver el control ni llamar a una función de devolución de llamada. En el código siguiente, nunca se invoca la alerta de 302 redirect, y para cuando se llama a la función dataFiler, los datos son el contenido de la página de inicio de sesión.
¿Cómo puedo ver que la página ha enviado un redireccionamiento 302 y la rama a una acción diferente?
$.ajax(url,
{
data: postArguments,
type : "POST",
success: function (data) { alert(' success function'); },
statusCode:
{
302: function() { alert(' received redirect 302'); },
301: function() { alert(' received redirect 301'); }
},
dataFilter: function (data, type) { alert('got data ' + data); return data; }
});