ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery AJAX リクエストが JSON ではなくプレーン テキストとしてデータを送信するのはなぜですか?

jQuery AJAX リクエストが JSON ではなくプレーン テキストとしてデータを送信するのはなぜですか?

DDD
リリース: 2024-10-29 22:46:02
オリジナル
551 人が閲覧しました

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

jQuery を使用した JSON データの効果的な送信

Web 開発では、多くの場合、クライアント側とサーバーの間でデータを効率的に送信することが重要です。人気の JavaScript ライブラリである jQuery は、このようなデータ交換を処理するための便利なメソッドを提供します。一般的なタスクの 1 つは、jQuery を使用して 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);
        }
    }
);
ログイン後にコピー

このコードは、$.ajax メソッドを使用して、arr オブジェクト内のデータを Ajax.ashx サーバーに送信しようとします。ただし、この問題は、コードでリクエストのコンテンツ タイプが指定されていない、または JSON リクエストが正しく構築されていないために発生します。

これを修正するには、JSON.stringify メソッドを使用して JavaScript オブジェクトをネイティブ JSON 文字列に変換する必要があります。 :

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);
    }
});
ログイン後にコピー

注意すべき重要なポイント:

  • contentType: リクエストのコンテンツ タイプを指定し、サーバーにJSON リクエストが送信されています。
  • dataType: サーバーからの予期される応答タイプを示します。
  • JSON.stringify: JavaScript オブジェクトを次のように変換します。 JSON 文字列。

追加の考慮事項:

  • arr オブジェクトは、実際には配列ではなく JavaScript オブジェクトです。配列は [] で表す必要があります。
  • サーバーの応答に注意し、Content-Type ヘッダーが JSON 応答を正しく反映していることを確認してください。それ以外の場合、jQuery は実際の形式に関係なく、応答を JSON として解析しようとします。

以上がjQuery AJAX リクエストが JSON ではなくプレーン テキストとしてデータを送信するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート