Heim >Web-Frontend >js-Tutorial >Wie sende ich JSON-Daten mit jQuerys $.ajax ohne Konvertierung der Abfragezeichenfolge?

Wie sende ich JSON-Daten mit jQuerys $.ajax ohne Konvertierung der Abfragezeichenfolge?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 12:56:02455Durchsuche

How to Send JSON Data with jQuery's $.ajax Without Query String Conversion?

JSON-Übertragung in jQuery: Der Abfragezeichenfolge-Falle entkommen

Bei der Verwendung der $.ajax-Funktion von jQuery kommt es häufig zu einem unerwarteten Verhalten, bei dem als JSON gesendete Daten automatisch gesendet werden in einen Abfragestring umgewandelt. Dies kann problematisch sein, wenn Ihre Anwendung auf den Empfang tatsächlicher JSON-Objekte angewiesen ist.

Das irreführende Attribut „dataType: 'json“

Der erste Instinkt ist das Festlegen das Attribut „dataType“ auf „json“, um den erwarteten Datentyp anzugeben. Dies bestimmt jedoch nur den vom Server erwarteten Datentyp und nicht, was Sie an ihn senden.

Lösung: JSON.stringify und Inhaltstyp

Zu lösen Um dieses Problem zu lösen, müssen Sie JSON.stringify verwenden, um Ihr JavaScript-Objekt in einen JSON-String zu serialisieren. Darüber hinaus müssen Sie die Eigenschaft „contentType“ auf „application/json“ setzen, um dem Server mitzuteilen, dass es sich bei den gesendeten Daten um JSON handelt.

$.ajax({
    url: url,
    type: "POST",
    data: JSON.stringify(data),
    contentType: "application/json",
    complete: callback
});

Legacy Support

Moderne Browser bieten native JSON-Funktionalität. Wenn jedoch Legacy-Unterstützung erforderlich ist, kann die json2-Bibliothek verwendet werden, um das JSON-Verhalten für ältere Umgebungen zu emulieren.

Das obige ist der detaillierte Inhalt vonWie sende ich JSON-Daten mit jQuerys $.ajax ohne Konvertierung der Abfragezeichenfolge?. 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