Maison  >  Article  >  interface Web  >  Pourquoi mon appel jQuery Ajax déclenche-t-il un événement d'erreur malgré une réponse 200 OK ?

Pourquoi mon appel jQuery Ajax déclenche-t-il un événement d'erreur malgré une réponse 200 OK ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-23 04:08:30713parcourir

Why Does My jQuery Ajax Call Trigger an Error Event Despite a 200 OK Response?

Gestion de 200 réponses avec des événements d'erreur jQuery

Lors de l'émission de requêtes Ajax, il est courant de rencontrer une situation où le serveur renvoie un statut 200 OK code, indiquant une requête réussie, mais l'événement d'erreur de jQuery est déclenché. Cela peut être particulièrement déroutant, car la requête semble avoir été complétée avec succès.

Pour comprendre ce comportement, il est crucial de reconnaître que jQuery tente d'interpréter le corps de la réponse en fonction du paramètre dataType spécifié ou du Content-Type. en-tête envoyé par le serveur. Cependant, si cette conversion échoue (par exemple, en raison d'un JSON ou XML non valide), jQuery déclenche le rappel d'erreur.

Considérez le code jQuery fourni :

dataType: "json"

Avec ce paramètre, jQuery s'attend à une réponse JSON valide du serveur. Cependant, le code C# côté serveur renvoie un extrait de code HTML, qui n'est pas du JSON. Cela conduit jQuery à échouer la conversion, ce qui entraîne l'appel d'un rappel d'erreur.

Pour résoudre ce problème, vous pouvez soit :

  • Supprimer le paramètre dataType : Cela empêchera jQuery de tenter la conversion automatique, vous permettant ainsi de gérer le succès ou l'échec en fonction du code d'état. seul.
  • Configurez le code côté serveur pour renvoyer un JSON valide : Cela implique de modifier l'en-tête Content-Type en application/javascript ou application/json, en fonction de vos besoins, et de renvoyer un Réponse JSON bien formée.

Vous pouvez également envisager d'afficher le message de réussite dans le rappel de réussite au lieu de vous fier au côté serveur. code pour fournir une alerte :

success: function (result) {
  alert("Record Deleted");
}

En implémentant ces solutions, vous pouvez vous assurer que votre requête Ajax gère correctement 200 réponses OK et fournit le comportement attendu.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn