Comment empêcher jQuery ajax de suivre une redirection après une publication?

J’ai un lien qui envoie un POST Ajax pour effectuer une action. Si l’utilisateur n’est pas encore connecté, la méthode d’action renvoie une redirection 302 vers la page de connexion. Si cela se produit, je souhaite intercepter la redirection, afin de pouvoir afficher le formulaire de connexion dans une lightbox.

Cependant, il semble que jQuery suive la redirection sans rendre le contrôle ou appeler une fonction de rappel. Dans le code ci-dessous, l’alerte de redirection 302 n’est jamais appelée et, au moment de l’appel de la fonction dataFiler, les données correspondent au contenu de la page de connexion.

Comment puis-je voir que la page a envoyé une redirection 302 et passer à une autre action?

$.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; } }); 

    Ce n’est pas une limitation avec jQuery mais avec JavaScript lui-même; il n’y a aucun moyen de détecter une redirection dans une requête AJAX en JavaScript; les objects XHR du navigateur suivent les redirections automatiquement, de façon magique et invisible, conformément aux spécifications .

    L’option idéale consisterait à append une capture dans le code de votre serveur pour détecter une requête AJAX (en-tête “HTTP_X_REQUESTED_WITH”) et à renvoyer une réponse spéciale permettant de détecter un utilisateur anonyme dans votre code JavaScript et de le gérer correctement.