web-dev-qa-db-ja.com

JavaScriptで現在のセッション値を取得しますか?

ブラウザーでWebアプリケーションを開きますが、2つの個別のタブでシナリオを作成します。

1つのタブでアプリケーションからサインアウトすると、すべてのセッション値がnullになります。もう一方のタブで、Webアプリケーションのアンカータグをクリックしました。アンカータグのjquery-onクリックイベントで、セッション値を確認しました。ここでは、セッションをnullとして取得することになっています(他のタブからアプリケーションをログアウトしたため)が、ログインしたユーザーとしてセッション値を取得しています(おそらくページの更新が発生しないため)。

私の考えは、jQueryでセッションをチェックし、セッションがnullの場合、アプリケーションをログアウトさせ、そうでなければポップアップページを表示することです。

ここにセッション値を取得するための私のコードがあります

$(".a".click(function(){
   var session=var data = '@Session["UserName"]';
   if(session!=null){
    //Show popup
   }
   else{
    //Show loginpage
   }

}))

JQueryで現在のセッション値を取得するにはどうすればよいですか?

32
SparAby

セッションはサーバー側のものであり、jQueryを使用してアクセスすることはできません。 Httpハンドラ(セッションIDを共有する場合)を記述し、$.ajaxを使用してそこから値を返すことができます。

37
Stefano Altieri

別のアプローチはあなたのchtmlにあります

<input type="hidden" id="hdnSession" data-value="@Request.RequestContext.HttpContext.Session['someKey']" />

そして、スクリプトは

var sessionValue= $("#hdnSession").data('value');

または、次の方法で直接アクセスできます。

 jQuery(document).ready(function ($) {
        var value = '@Request.RequestContext.HttpContext.Session["someKey"]';
    }); 
17
Najib

Javascriptを使用したセッション変数へのアクセスと割り当て:

Javascriptを使用したASP.NETセッション変数の割り当て:

 <script type="text/javascript">
function SetUserName()
{
    var userName = "Shekhar Shete";
    '<%Session["UserName"] = "' + userName + '"; %>';
     alert('<%=Session["UserName"] %>');
}
</script>

Javascriptを使用したASP.NETセッション変数へのアクセス:

<script type="text/javascript">
    function GetUserName()
    {

        var username = '<%= Session["UserName"] %>';
        alert(username );
    }
</script>

既に回答済み

5
SHEKHAR SHETE

私が解決した方法は、コントローラーで関数を作成し、jqueryクリックイベントでajax経由でアクセスしたことでした

まず、上記のシナリオを実装する方法のアイデアを提供してくれた@Stefano Altieriに感謝します。セッションの有効期限が切れると、クライアント側から現在のセッション値にアクセスできません。

また、質問を正しく読むことで、質問に慎重に答えることができると言いたいです。

4
SparAby

この方法をテストしましたが、うまくいきました。その有用性を願っています。

indexという名前のファイルがあると仮定します。php
ユーザーがログインすると、ユーザー名をphpセッションに保存します。例$ _SESSION ['username'];

あなたはindex.phpファイルでこのようなことをすることができます

<script type='text/javascript'>
  var userName = "<?php echo $_SESSION['username'] ?>"; //dont forget to place the PHP code block inside the quotation 
</script>

これで、index.phpファイルに配置された別のスクリプトブロック、またはindex.phpにリンクされた.jsファイルで変数serIdにアクセスできます。

例index.jsファイル内

$(document).ready(function(){
    alert(userId);   
})

データベーステーブルなどを更新するために、ajaxクエリでcookieとして保存されているユーザー名およびその他のユーザーデータを使用できるため、非常に便利です。

javascript変数を使用して情報を含めたくない場合は、「type = 'hidden'を指定して入力を使用できます。

例index.phpファイルに次のように記述します。

<?php echo "<input type='hidden' id='username' value='".$_SESSION['username']."'/>";
?>

ただし、この方法では、ブラウザにページのソースコードを表示するように要求すると、ユーザーは非表示の入力を見ることができます。ソースビューでは、非表示の入力がそのコンテンツとともに表示されます。望ましくないことがあります。

3
Faradin

これは私が使用した方法です->

<body  onkeypress='myFunction(event)'>

<input type='hidden' id='homepage' value='$_SESSION[homepage]'>


<script>
    function myFunction(event){var x = event.which;if(x == 13){var homepage 
    =document.getElementById('homepage').value;
    window.location.href=homepage;}else{     
    document.getElementById("h1").innerHTML = "<h1> Press <i> ENTER </i> to go back... </h1>";}}
</script>
</body>
0
Vlog -the-world

C#mvcアプリケーションを使用しています。このようにControllerクラスでセッションを作成しました

string description = accessDB.LookupSomeString(key, ImpDate);
this.Session["description"] = description;    

ビューで、セッション値にアクセスし、次のように変数に保存します(これは$ .ajax内ですが、jquery内で動作するはずです)

var Sessiondescription = '@Session["description"]';
alert(Sessiondescription);
0
Barakat
<script type="text/javascript">
$(document).ready(function(){

   var userId=<%: Session["userId"] %>;
    alert(userId);   
})   
</script>
**Get the current session value in jQuery**
0
Pankaj Kumar

このようにしてみて

var username= "<%= Session["UserName"]%>";
0

セッションでIDまたはクラスと値を持つ隠しフィールドを取得し、JavaScriptで取得します。

Javascript var session = $( '#session')。val(); // jQueryで取得

0