1. ホーム
  2. ジャバスクリプト

[解決済み】jQueryでGETリクエストにパラメータを渡す方法

2022-03-29 18:34:45

質問

jQuery Ajaxのリクエストでは、どのようにクエリ文字列の値を渡せばいいのでしょうか?私は現在、以下のようにそれらを行いますが、私は私が手動でエンコードする必要がないよりきれいな方法があることを確信しています。

$.ajax({
    url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress),
    success: function(response) {
        //Do Something
    },
    error: function(xhr) {
        //Do Something to handle error
    }
});

クエリ文字列のパラメータを配列として渡す例を見たことがありますが、私が見たこれらの例では、クエリ文字列のパラメータとして $.ajax() モデルを使用し、代わりに直接 $.get() . 例えば

$.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } );

私は、$.ajax()形式を好んで使っています(特に理由はなく、個人的な好みです)。

2013年04月09日編集

私の質問が(Too Localised"として)閉じられた後、私は関連する(同じ)質問を見つけました - 3 upvotes no-less(最初にそれを見つけなかった私の責任)。

jqueryを使用してPOSTを行う場合、'data'パラメータを適切に供給する方法は?

これは私の質問に完璧に答えてくれました。この方法で行うことで、より簡単に & を読むことができます。 encodeURIComponent() をURLやDATA値で指定することができます(bipenさんの回答で不明確だった点です)。というのも data の値は、自動的に $.param() ). 念のため、これは私が行った例です。

$.ajax({
    url: "ajax.aspx?ajaxid=4",
    data: { 
        "VarA": VarA, 
        "VarB": VarB, 
        "VarC": VarC
    },
    cache: false,
    type: "POST",
    success: function(response) {

    },
    error: function(xhr) {

    }
});

解決方法は?

ajaxのdataオプションを使用します。サーバにデータオブジェクトを送信するには data というオプションがあり、ajaxの type で、どのように送信するかを定義します。 POST または GET ). デフォルトのタイプは GET メソッド

これを試してみてください

$.ajax({
  url: "ajax.aspx",
  type: "get", //send it through get method
  data: { 
    ajaxid: 4, 
    UserID: UserID, 
    EmailAddress: EmailAddress
  },
  success: function(response) {
    //Do Something
  },
  error: function(xhr) {
    //Do Something to handle error
  }
});

そして、次のようにしてデータを取得することができます(PHPを使用している場合)。

 $_GET['ajaxid'] //gives 4
 $_GET['UserID'] //gives you the sent userid

aspxでは、次のようになると思います(間違っているかもしれません)。

 Request.QueryString["ajaxid"].ToString();