Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum sendet meine jQuery-AJAX-Anfrage Daten als Klartext statt als JSON?

DDD
Freigeben: 2024-10-29 22:46:02
Original
459 Leute haben es durchsucht

Why is my jQuery AJAX request sending data as plain text instead of JSON?

JSON-Daten effektiv mit jQuery senden

Bei der Webentwicklung ist es oft entscheidend, Daten effizient zwischen der Client-Seite und dem Server zu übertragen. jQuery, eine beliebte JavaScript-Bibliothek, bietet praktische Methoden für die Abwicklung eines solchen Datenaustauschs. Eine häufige Aufgabe besteht darin, Daten im JSON-Format mithilfe von jQuery an den Server zu senden.

Aber manchmal stoßen Entwickler auf das Problem, dass Daten nicht im gewünschten JSON-Format, sondern als einfacher Text übertragen werden. Um zu verstehen, warum dies geschieht, untersuchen wir einen Codeausschnitt:

var arr = {City:'Moscow', Age:25};
$.ajax(
   {
        url: "Ajax.ashx",
        type: "POST",
        data: arr,
        dataType: 'json',
        async: false,
        success: function(msg) {
            alert(msg);
        }
    }
);
Nach dem Login kopieren

Dieser Code versucht, die Daten im arr-Objekt mithilfe der $.ajax-Methode an den Ajax.ashx-Server zu senden. Das Problem tritt jedoch auf, weil der Code den Inhaltstyp der Anfrage nicht angibt oder die JSON-Anfrage nicht korrekt erstellt.

Um dies zu beheben, sollte die Methode JSON.stringify verwendet werden, um das JavaScript-Objekt in einen nativen JSON-String zu konvertieren :

var arr = { City: 'Moscow', Age: 25 };
$.ajax({
    url: 'Ajax.ashx',
    type: 'POST',
    data: JSON.stringify(arr),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: false,
    success: function(msg) {
        alert(msg);
    }
});
Nach dem Login kopieren

Wichtige Punkte, die Sie beachten sollten:

  • contentType: Gibt den Inhaltstyp der Anforderung an und zeigt dem Server an, dass a JSON-Anfrage wird gesendet.
  • dataType: Gibt den erwarteten Antworttyp vom Server an.
  • JSON.stringify: Konvertiert das JavaScript-Objekt in eine JSON-Zeichenfolge.

Zusätzliche Überlegungen:

  • Das arr-Objekt ist eigentlich ein JavaScript-Objekt, kein Array. Arrays sollten mit [] gekennzeichnet werden.
  • Achten Sie auf die Antwort des Servers und stellen Sie sicher, dass sein Content-Type-Header eine JSON-Antwort korrekt wiedergibt. Andernfalls versucht jQuery, die Antwort unabhängig von ihrem tatsächlichen Format als JSON zu analysieren.

Das obige ist der detaillierte Inhalt vonWarum sendet meine jQuery-AJAX-Anfrage Daten als Klartext statt als JSON?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!