2010-11-30 12 views
0

私は、サーバコーディングのためにasp.net(webforms flavor)を使用します。 Sessionオブジェクトの中に "test"という変数を格納したとしましょう。Jqueryコード内のセッション変数をキャプチャ

javascript jsファイル内のコンテンツを取得する方法はありますか(私はJqueryを使用します)。現在、私は次の回避策を使用しています - aspx.csファイルでは、私は隠しフィールドを設定し、Jqueryではそのフィールドの内容を取得します。

これを行う適切な方法は何ですか?

私はセッションをWebメソッドで公開しようとしましたが、$ ajax関数を使用してJquery側の値を取得しようとしましたが、セキュリティエラーが発生しました - 「許可が拒否されました」 -

私の回避策はうまくいきますが、私にとってはちょっと大変なようです。 Jqueryでセッションアクセスを実現する一般的な方法は何ですか?

答えて

0

セッションはサーバー上に存在するため、JQuery(クライアント上)は本当に「直接」アクセスできません。ページにセッション変数の値を認識させたい場合、隠されたフィールドを使っているときに、ページの動的に生成された部分に値を含めるのが最も良い方法です。また、.aspxファイルにjavacriptを生成することもできます。

<script type="text/javascript"> 
    currentSessionName = '<%=Session["CurrentPersonName"].Replace("'", "\\'")%>'; 
</script> 
+0

ありがとう、あなたは構文について確かですか? JSは不平を言っています... – sarsnake

+0

静的な.jsファイルのように、おそらくcurrentSessionNameを変数として宣言しなければならないでしょう。 – StriplingWarrior

+0

それはそうではありません。 This - '<%= Session ["CurrentPersonName"]。Replace( "'"、 "\\ '")%>'が問題です。構文エラーがあると訴えます。 – sarsnake

1

use jQuery to call a web methodです。 [WebMethod(true)]attribute overloadでメソッドを飾って、セッション状態を利用できるようにしてください。

+0

それは私が間違っていたかもしれません。私はそれを試してみます – sarsnake

+0

それはあなたのために働いたのですか? –

+0

いいえ、何も動作しません。とてもイライラします。私はEnablePageMethods = "true"を設定し、WebMethodから返される値は未定義です。私の他の選択肢は、単に隠されたフィールドにそれを吐き出すことです、そしてそこからそれを拾います、それはむしろ野蛮なようです。 – sarsnake

関連する問題