ホームページ >ウェブフロントエンド >jsチュートリアル >jQuery を使用して JSON データを送信する方法: フォームエンコードされた文字列を回避する?

jQuery を使用して JSON データを送信する方法: フォームエンコードされた文字列を回避する?

DDD
DDDオリジナル
2024-11-04 09:02:30887ブラウズ

How to Send JSON Data with jQuery: Avoiding Form-Encoded Strings?

jQuery で JSON データを送信する: フォームエンコードされた文字列を回避する

開発者は、jQuery の $.ajax() を使用して JSON データを送信する際に、データが意図された JSON 形式ではなくフォームエンコードされた文字列として送信される問題が発生します。これは、特定のパラメータが省略された場合に発生します。

次のコードを考えてみましょう:

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

このコードでは、データはフォーム エンコードされた文字列として送信されます (例: "City=Moscow&Age= JSON ではなく 25")。この問題を解決するには、次の 2 つの重要な手順を実行する必要があります。

  1. データを JSON 形式に変換する:
    JSON.stringify() メソッドを使用して、 JavaScript オブジェクト (arr) を JSON に変換string.

    var arr = { City: 'Moscow', Age: 25 };
    var json_data = JSON.stringify(arr);
  2. リクエストのコンテンツ タイプを指定します:
    contentType プロパティを 'application/json; に設定します。 charset=utf-8' は、リクエストに JSON データが含まれていることを示します。

    contentType: 'application/json; charset=utf-8',

以下の修正されたコードには、次の変更が組み込まれています。

$.ajax({
    url: 'Ajax.ashx',
    type: 'POST',
    data: json_data,
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: false,
    success: function(msg) {
        alert(msg);
    }
});

これらの調整により、データが JSON として送信されるため、サーバーはリクエストを正しく処理し、必要な JSON 応答を返すことができます。

以上がjQuery を使用して JSON データを送信する方法: フォームエンコードされた文字列を回避する?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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