在JavaScript中获取当前会话值?

Spa*_*Aby 32 asp.net session jquery

我有一个场景,我在浏览器中打开我的Web应用程序,但在两个单独的选项卡中.

在一个选项卡中,我从应用程序注销,因此所有会话值都变为空.在另一个选项卡中,我点击了webapplication中的锚标记.在锚标记的jquery-on click事件中,我检查了会话值.在这里,我应该将会话设置为null(因为我从其他选项卡中注销了应用程序),但我正在以登录用户身份获取会话值(可能是因为没有发生页面刷新).

我的想法是检查jQuery上的会话,如果会话为null,则使应用程序注销,否则显示一个弹出页面..

这是获取会话值的代码

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

}))
Run Code Online (Sandbox Code Playgroud)

如何在jQuery中获取当前会话值?

Ste*_*eri 37

会话是服务器端的事情,你不能使用jQuery访问它.您可以编写一个Http处理程序(如果有的话,它将共享sessionid)并使用它返回值$.ajax.


小智 17

另一种方法是在你的chtml中

<input type="hidden" id="hdnSession" data-value="@Request.RequestContext.HttpContext.Session['someKey']" />
Run Code Online (Sandbox Code Playgroud)

而剧本是

var sessionValue= $("#hdnSession").data('value');
Run Code Online (Sandbox Code Playgroud)

或者您可以直接访问

 jQuery(document).ready(function ($) {
        var value = '@Request.RequestContext.HttpContext.Session["someKey"]';
    }); 
Run Code Online (Sandbox Code Playgroud)


小智 6

我测试了这个方法,它对我有用。希望它有用。

假设您有一个名为 index.js 的文件。php
,当用户登录时,您将用户名存储在 php 会话中;前任。$_SESSION['用户名'];

你可以在你的 index.php 文件中做这样的事情

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

现在您可以访问位于 index.php 文件中的另一个脚本块中的变量userId,甚至可以在链接到 index.php 的 .js 文件中访问

前任。在 index.js 文件中

$(document).ready(function(){
    alert(userId);   
})
Run Code Online (Sandbox Code Playgroud)

它可能非常有用,因为它使我们能够在 ajax 查询中使用用户名和其他用户数据作为 cookie,用于更新数据库表等。

如果您不想使用 javascript 变量来包含信息,您可以使用带有 "type='hidden'; 的输入;

前任。在你的 index.php 文件中,写:

<?php echo "<input type='hidden' id='username' value='".$_SESSION['username']."'/>";
?>
Run Code Online (Sandbox Code Playgroud)

但是,如果用户要求浏览器显示页面的源代码,则用户可以通过这种方式看到隐藏的输入。在源视图中,隐藏的输入及其内容可见。你可能会觉得这是不受欢迎的。


SHE*_*ETE 5

使用Javascript访问和分配会话变量:

使用Javascript分配ASP.NET会话变量:

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

使用Javascript访问ASP.NET Session变量:

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

        var username = '<%= Session["UserName"] %>';
        alert(username );
    }
</script>
Run Code Online (Sandbox Code Playgroud)

已在这里回答

  • 如何通过单独阅读问题标题来发表答案.请同时阅读问题...... (6认同)