Heim > Artikel > Backend-Entwicklung > Warum empfängt der AJAX-Aufruf von jQuery falsche Daten, obwohl PHP JSON zurückgibt?
PHP gibt JSON an den jQuery-AJAX-Aufruf zurück
Trotz Ihrer Bemühungen, mit PHP über die AJAX-Funktionalität von jQuery zu kommunizieren, stoßen Sie ständig auf das Problem „ Fehler „Selektor aktiviert“. Darüber hinaus scheinen die abgerufenen Daten falsch zu sein. Lassen Sie uns das Problem untersuchen und die mögliche Ursache identifizieren.
PHP mit JSON-Rückgabe
Der unten bereitgestellte Ausschnitt veranschaulicht, wie JSON-Daten in PHP zurückgegeben werden:
<code class="php">header('Content-Type: application/json'); echo json_encode([ 'return' => 1, 'msg1' => 'Message sent OK, we will be in touch ASAP' ]); exit;</code>
Beachten Sie die Einbeziehung von header('Content-Type: application/json'); vor echo, um den JSON-Inhaltstyp anzugeben.
JavaScript und AJAX
Ihr JavaScript-Code unten sollte den AJAX-Aufruf erfolgreich verarbeiten:
<code class="javascript">$('#msgid').html('<h1>Submitting Form (External Routine)</h1>'); if ($('#formEnquiry').valid()) { $("#msgid").append("<h1>(Outside Ready) VALIDATED send to PHP</h1>"); $.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] + '<br />'); } }, error: function (data) { alert("ERROR: "); for (var key in data) { $('#msgid').append(key); $('#msgid').append('=' + data[key] + '<br />'); } } }); } else { $('#msgid').append('<h1>(Outside Ready) NOT VALIDATED</h1>'); }</code>
Stellen Sie sicher, dass Ihr AJAX-Aufruf erst nach der Formularvalidierung ausgelöst wird, um unnötige Serveranfragen zu vermeiden.
Aufgelistete angebliche JSON-Daten
Die Ausgabe, die Sie erhalten, ist nicht JSON-formatiert. Es scheint, dass stattdessen das XHR-Objekt von jQuery gedruckt wird.
Potenzielle Fallstricke
Überprüfen Sie Folgendes:
Das obige ist der detaillierte Inhalt vonWarum empfängt der AJAX-Aufruf von jQuery falsche Daten, obwohl PHP JSON zurückgibt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!