Lors de l'exécution d'un appel Ajax avec jQuery, la rencontre d'une directive de redirection du serveur peut entraîner des conséquences inattendues . Au lieu du remplacement attendu d'un élément div, vous pourriez vous retrouver avec l'utilisateur regardant involontairement une page de connexion.
La solution à ce problème, comme suggéré dans un article perspicace, consiste à modifier le code d'état HTTP pour être 278. Cela empêche le navigateur de gérer automatiquement les redirections. Cependant, pour une approche plus robuste, envisagez d'utiliser JSON.
Dans ce scénario, quelle que soit la réponse, l'appel Ajax conserve un code d'état de 200. Le corps de la réponse contient un objet JSON conçu sur le serveur. Cet objet permet au JavaScript côté client de déterminer l'action appropriée en fonction de son contenu.
La mise en œuvre de cette approche imite la logique suivante :
$.ajax({ type: "POST", url: reqUrl, data: reqBody, dataType: "json", success: function(data, textStatus) { if (data.redirect) { window.location.href = data.redirect; } else { $("#myform").replaceWith(data.form); } } });
L'objet de données, composé sur le serveur, comprend deux composants clés : data.redirect et data.form. Cette méthode offre une plus grande flexibilité et clarté dans la gestion des demandes de redirection lors des appels Ajax.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!