"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Appel jQuery Ajax pour recevoir une erreur de données, mais PHP a renvoyé JSON

Appel jQuery Ajax pour recevoir une erreur de données, mais PHP a renvoyé JSON

Publié le 2025-04-16
Parcourir:369

Why is jQuery\'s AJAX Call Receiving Incorrect Data Even Though PHP is Returning JSON?

php renvoie json à jQuery ajax appel

Malgré vos efforts pour communiquer avec la fonctionnalité ajax de jQuery, vous apportez continuellement la "erreur" sélectorielle ". De plus, les données récupérées semblent incorrectes. Plongeons dans le problème et identifions la cause potentielle.

php avec JSON return

Le extrait fourni ci-dessous illustre comment renvoyer les données JSON dans php:

header('Content-Type: application/json');
echo json_encode([
  'return' => 1,
  'msg1' => 'Message sent OK, we will be in touch ASAP'
]);
exit;

Remarquez l'inclusion de l'en-tête ('contenu-type: application / json'); Avant echo pour spécifier le type de contenu json.

javascript et ajax

Votre code javascrip Routine) '); if ($ ('# formmenquiry'). valide ()) { $ ("# msgid"). APPEND ("

(extérieur prêt) validé envoyé à php

"); $ .ajax ({ URL: "ContactFormProcess3.php", Type: "Post", Données: $ ('# formmenquiry'). Serialize (), Type de données: "JSON", Succès: fonction (données) { alerte ("Succès:"); pour (clé var dans les données) { $ ('# msgid'). APPEND (clé); $ ('# msgid'). APPEND ('=' data [key] '
'); } }, Erreur: fonction (données) { alert ("Erreur:"); pour (clé var dans les données) { $ ('# msgid'). APPEND (clé); $ ('# msgid'). APPEND ('=' data [key] '
'); } } }); } autre { $ ('# msgid'). APPEND ('

(extérieur prêt) non validé

'); }
$('#msgid').html('

Submitting Form (External Routine)

'); if ($('#formEnquiry').valid()) { $("#msgid").append("

(Outside Ready) VALIDATED send to PHP

"); $.ajax({ url: "ContactFormProcess3.php", type: "POST", data: $('#formEnquiry').serialize(), dataType: "json", success: function (data) { alert("SUCCESS:"); for (var key in data) { $('#msgid').append(key); $('#msgid').append('=' data[key] '
'); } }, error: function (data) { alert("ERROR: "); for (var key in data) { $('#msgid').append(key); $('#msgid').append('=' data[key] '
'); } } }); } else { $('#msgid').append('

(Outside Ready) NOT VALIDATED

'); }

Répertorié des données JSON supposées

La sortie que vous obtenez n'est pas formatée JSON. Il apparaît que l'objet XHR de jQuery est imprimé à la place.

Pitfaux potentiels

Vérifiez ce qui suit:

Assurez-vous que votre script php répond avec le type de contenu correct (contenu: application / json). DataType est défini sur "JSON".

    Vérifiez que le script s'exécute avec succès sur le serveur, et que PHP est configuré pour gérer la sortie JSON.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3