0

生成された json を jquery $.ajax で解析していますが、理解できないオプションが 1 つあります。いくつかの例でそれを見て、jquery.com で検索しようとしましたが、まだよくわかりません:

このオプションは次のとおりです。

data: { get_param: 'value' }

これは次のように使用されます:

$.ajax({ 
                type: 'GET', 
                url: 'http://example/functions.php', 
                data: { get_param: 'value' }, //why we shell use that in that case?
                success: function (data) { 
                                    var names = data
                    $('#cand').html(data);
                }
          });

「 data: 」がサーバーに送信されたものであることは知っていますが、JSONを解析すると、送信せずにGETタイプでサーバーから取得すると思いました。そして、次の部分「get_param: 'value'」もその場合には意味がありません。いつ、何のために、どのような場合にシェルが使用されるのか説明してもらえますか?

ありがとうございました。

4

2 に答える 2

2

「データ」がサーバーに送信されたものであることを知っています

はい。dataがオブジェクトの場合、application/x-www-form-urlencoded文字列にシリアル化され、リクエスト タイプ (GET/POST) に応じて、クエリ文字列またはリクエスト本文に配置されます。

jQuery は、これに必要なすべてのエスケープを行います。

(また、デフォルトでは、ネストされたデータ構造(例にはありません)を[]、キー名に追加することによりPHPスタイルに折りたたみます)。

しかし、JSONを解析しています

JSON は関与しません (サーバーが応答しない限り)。

いつ、何のために、どのような場合にシェルを使用するか

静的 URI を要求するのではなく、データをサーバーに渡したいとき。

于 2012-11-06T11:24:54.290 に答える
1

(通常は) JSON を送信せず、単純な GET または POST HTTP パラメーターを送信します。これらはajax通常、オブジェクト リテラルでメソッドに与えられますが、 string も使用できます"getparam=value"。オブジェクトを提供すると、jQuery がパラメーターのシリアル化と URL エンコードを行います。それらは として送信されx-www-form-urlencodedます。

ドキュメントから引用するには:

データ( Object, String)

サーバーに送信されるデータ。まだ文字列でない場合は、クエリ文字列に変換されます。GET リクエストの URL に追加されます。processDataこの自動処理を防止するオプションを参照 してください。オブジェクトはキーと値のペアである必要があります。値が配列の場合、jQuery は設定の値に基づいて同じキーで複数の値をシリアル化しますtraditional

于 2012-11-06T11:25:28.090 に答える