Ajax GETリクエスト:パラメーターを使用するか、URLにデータを入れますか?

StackOverflow https://stackoverflow.com/questions/218399

  •  03-07-2019
  •  | 
  •  

質問

Ajax GETリクエストでURLの一部と比較してデータをパラメーターとして渡す利点は何ですか?

パラメーターの使用:

var ajax = new Ajax.Request('server.php',{
    parameters: 'store=11200&product=Meat',
    onSuccess: function(myData){whatever}
});

URLの使用:

var ajax = new Ajax.Request('server.php?store=11200&product=Meat',{
    onSuccess: function(myData){whatever}
});
役に立ちましたか?

解決

parameters 引数を使用する利点の1つは、文字列としてではなく Hash のようなオブジェクトを渡すことができることです。 (ただし、これを行う場合は、Prototype AjaxリクエストのデフォルトのメソッドがPOSTであるため、 method パラメーターを" GET" に設定してください。 Ajaxのプロトタイプの紹介で詳細を確認してください。)

もう1つの利点は、指定した例と一直線ですが、送信されるオプションから要求URLを分離できることです。これは、たとえば、いくつかの異なるURLに多数の同様のリクエストを送信する必要がある場合に便利です。 (その場合、パラメーター文字列を使用するよりも、リクエストごとに変更する共通パラメーター Hash を使用する方が便利な場合があります。)

詳細については、 Ajaxオプションのプロトタイプドキュメントを参照してください。

他のヒント

パラメータの私のお気に入りの使用法の1つは、明示的にリストせずにフォームのすべてのフィールドを渡すことです

new Ajax.Request('/myurl.php', {
  method:  'get',
  parameters:  $('myForm').serialize(),
  onSuccess:  successFunc(),
  onFailure:  failFunc()
}

これに答えるには、パラメーターの動作方法を知っておく必要があります。 HTTP(基本的にはそれ以上)には、データをリクエストするための2つのメソッド、GETとPOSTがあります。

GETの場合、上記のコードで行ったように、リクエストしたリソースにパラメータが追加されます:/ my / resource / name?para1 = bla。ここで、ifをリソース名に直接追加する場合、またはparametersオプションを使用する場合、違いはありません。 GETは通常、データを要求するために使用されます(GETです;)

POSTの場合、パラメータはHTTP本文のリソースとは別に記述されます。このためには、パラメータオプションを使用する必要があります。 POSTは(巨大な)データを送信するために使用されます。

使用するリクエストメソッドを指定するには、 method オプションを使用します。

注:GETリソースには(サーバーごとに)長さに厳しい制限があります。したがって、GETを使用して大量のデータを送信しないでください。

次の形式も使用できます。

var ajax = new Ajax.Request('server.php',{
  parameters: {
     store: 11200,
     product: "Meat"
  }
  onSuccess: function(myData){whatever}
});

この方法で行う利点は、URLを変更せずにGETからPOSTに変更できることです。

  • 安定性
  • オブジェクトを使用して簡単にシリアル化できます( {store:11200、product:" Meat"}
  • 安定性

getリクエストには常にURLのデータが含まれるため、技術的な観点からはフォーマットと設定以外は重要ではありません。パラメーターは、GETリクエストを作成する便利な方法です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top