Heim >Backend-Entwicklung >PHP-Tutorial >Warum empfängt der AJAX-Aufruf von jQuery falsche Daten, obwohl PHP JSON zurückgibt?

Warum empfängt der AJAX-Aufruf von jQuery falsche Daten, obwohl PHP JSON zurückgibt?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-31 20:55:17891Durchsuche

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

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:

  • Stellen Sie sicher, dass Ihr PHP-Skript vorhanden ist Antworten Sie mit dem richtigen Inhaltstyp (Content-Type: application/json).
  • Stellen Sie sicher, dass der dataType Ihres AJAX-Aufrufs auf „json“ eingestellt ist.
  • Überprüfen Sie, ob das Skript erfolgreich ausgeführt wird Server und dass PHP für die Verarbeitung der JSON-Ausgabe konfiguriert ist.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn