Ajax GETリクエスト:パラメーターを使用するか、URLにデータを入れますか?
-
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リクエストを作成する便利な方法です。