可能性の重複:
Get query string values in JavaScriptASP.NETページメソッド - ページメソッド内でurlパラメータ値を取得する方法は?
私はカレンダーのWebページを持っています。ユーザーがイベントを開くと、 "http://localhost/Event.aspx?eventid=4" のようなURLのページが開きます。次に、jQueryを使用してページメソッドを呼び出して余分なデータを表示します。 $ .ajax関数で送信しているデータパラメータには、正しいイベントのデータを表示するための "eventID"も含まれています。 ユーザが手作業で(firebugコンソールから)、偽の "eventID"を使ってjQueryのcall to pageメソッドを実行すると、彼は誤ったデータを取得します。 私はそれを防止したいと思います... jQueryのデータパラメータでeventidを送信しない方法で、サーバー側のコードビハインドでeventidを何とか取得します。 私はセッションを使用できません(ユーザーが複数のイベントを開くことができ、それぞれが自分のイベントIDを持つことができるため)。また、クッキーも使用できないため、ハッキングする可能性もあります。 だから私は
HttpContext.Current.Request.QueryString
が、運とを使用して、ページメソッド内で直接正しいイベントIDを取得しようとしていました。 Page_Loadで は、私は私のイベントIDを取得:
EventID = Page.Request.QueryString("eventid")
が、私は私のページのメソッドにこのイベントIDの値を取得する方法を見つけることができません。
したがって、Page_Loadで定義されたURLまたはパブリック変数からページメソッドのパラメータ値を取得する方法のアドバイスをお願いしています。
ありがとうございました。
EDIT: 現在、私のようなパラメータを送信するためにPOSTを使用しています:
var myEventId = $("#hiddenField").val();
$.ajax({
url: "Event.aspx/getEventData",
type: "POST",
data: "{'eventid':myEventId}"
...
});
をしかし、私はハッキングを防ぐために、POSTでイベントIDパラメータを送信しないようしたいと思います。
方法:
限り、何があなたのコードに問題があるとして、データパラメータはJSON自体ではなく、JSONの文字列(あなたの引用符を除く)である必要がありますか?この場合、あなたのメソッドを呼び出すためにサーバーにポストすることができるページに隠しフィールドを持つことができます... – Sunny
この質問はあなたを助けるかもしれません:http://stackoverflow.com/questions/901115/get-query-string -values-in-javascript –
参考までに、POSTリクエストはGETリクエストよりも悪意のあるユーザーから安全ではなく、その逆もあります。 – Jeff