ホームページ >ウェブフロントエンド >jsチュートリアル >クエリ文字列変換を行わずに jQuery の $.ajax を使用して JSON データを送信する方法

クエリ文字列変換を行わずに jQuery の $.ajax を使用して JSON データを送信する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 12:56:02455ブラウズ

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

jQuery での JSON 送信: クエリ文字列トラップのエスケープ

jQuery の $.ajax 関数を使用すると、JSON として送信されたデータが自動的に送信されるという予期せぬ動作が発生することがよくあります。クエリ文字列に変換されます。アプリケーションが実際の JSON オブジェクトの受信に依存している場合、これは問題となる可能性があります。

誤解を招く 'dataType: 'json'' 属性

最初の直感は、次のように設定することです。 「dataType」属性を「json」に設定して、予期されるデータ型を指定します。ただし、これはサーバーから予期されるデータ型を指定するだけであり、サーバーに送信するデータ型を指定するものではありません。

解決策: JSON.stringify と Content Type

解決するにはこの問題では、JSON.stringify を使用して JavaScript オブジェクトを JSON 文字列にシリアル化する必要があります。さらに、送信されるデータが JSON であることをサーバーに指示するには、'contentType' プロパティを 'application/json' に設定する必要があります。

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

Legacy Support

最新のブラウザはネイティブ JSON 機能を提供します。ただし、レガシー サポートが必要な場合は、json2 ライブラリを使用して古い環境の JSON 動作をエミュレートできます。

以上がクエリ文字列変換を行わずに jQuery の $.ajax を使用して JSON データを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。