Comment capturer le texte de réponse d'erreur dans l'AJAX de jQuery
Lors de l'envoi d'une réponse d'erreur à une requête jQuery AJAX, les utilisateurs peuvent rencontrer l'impossibilité pour récupérer le message d'erreur réel. Au lieu de cela, ils reçoivent uniquement un message « d’erreur » générique dans le rappel d’erreur. Cet article explore une solution à ce défi, permettant aux développeurs d'accéder au texte d'erreur détaillé.
La cause première de ce problème provient du mécanisme de gestion des erreurs par défaut de jQuery. Lorsqu'une erreur se produit, jQuery tente d'analyser l'erreur JSON si elle a un en-tête Content-Type défini. Si aucun en-tête n'est présent, jQuery revient à un simple message "d'erreur".
Pour surmonter cette limitation, nous pouvons modifier la fonction de rappel d'erreur pour récupérer explicitement le texte de la réponse :
error: function(xhr, status, error) { var err = eval("(" + xhr.responseText + ")"); alert(err.Message); }
Cette approche consiste à évaluer le texte de réponse au format JSON à l'aide de la fonction eval() de JavaScript. L'objet d'erreur résultant est ensuite accessible pour obtenir le message d'erreur spécifique.
Exemple d'implémentation :
$.ajax({ type: "post", data: {id: 0}, cache: false, url: "doIt.php", dataType: "text", error: function(xhr, status, error) { var err = eval("(" + xhr.responseText + ")"); alert(err.Message); }, success: function () { alert(" Done ! "); } });
Avec cette modification, le rappel d'erreur AJAX fournira le texte d'erreur réel, permettant aux développeurs de gérer les erreurs plus efficacement et de fournir des commentaires informatifs aux utilisateurs.
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!