Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 获取JavaScript中的当前会话值?_Jquery_Asp.net_Session - Fatal编程技术网

Jquery 获取JavaScript中的当前会话值?

Jquery 获取JavaScript中的当前会话值?,jquery,asp.net,session,Jquery,Asp.net,Session,我有一个场景,我在浏览器中打开web应用程序,但在两个单独的选项卡中打开 在一个选项卡中,我从应用程序注销,因此所有会话值都变为null。在另一个选项卡中,我单击了webapplication中的锚定标记。在锚定标记的jquery on click事件中,我检查了会话值。在这里,我应该将会话设置为null(因为我从另一个选项卡注销了应用程序),但我将会话设置为logged-in-user(可能是因为没有发生页面刷新) 我的想法是在jQuery上检查会话,如果会话为null,则让应用程序注销,否则

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

在一个选项卡中,我从应用程序注销,因此所有会话值都变为null。在另一个选项卡中,我单击了webapplication中的锚定标记。在锚定标记的jquery on click事件中,我检查了会话值。在这里,我应该将会话设置为null(因为我从另一个选项卡注销了应用程序),但我将会话设置为logged-in-user(可能是因为没有发生页面刷新)

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

下面是我获取会话值的代码

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

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

像这样尝试

var username= "<%= Session["UserName"]%>";
string description = accessDB.LookupSomeString(key, ImpDate);
this.Session["description"] = description;    
var username=”“;
另一种方法是 在您的chtml中

<input type="hidden" id="hdnSession" data-value="@Request.RequestContext.HttpContext.Session['someKey']" />
或者您可以直接通过

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

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

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

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

        var username = '<%= Session["UserName"] %>';
        alert(username );
    }
</script>
使用Javascript分配ASP.NET会话变量:

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

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

函数SetUserName()
{
var userName=“Shekhar Shete”;
'';
警报(“”);
}
使用Javascript访问ASP.NET会话变量:

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

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

函数GetUserName()
{
var用户名=“”;
警报(用户名);
}

按照我的解决方法,我在controller中编写了一个函数,并在jquery单击事件中通过ajax访问它

首先,我要感谢@Stefano Altieri为我提供了如何实现上述场景的想法,您完全正确,会话过期时,我们无法从客户端访问当前会话值


另外,我想说的是,正确阅读问题将有助于我们仔细回答问题。

在会话中使用id或类和值的隐藏字段,并使用javascript获取它

Javascript
var session=$('#session').val()//通过jQuery获取

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

假设您有一个名为index的文件。php
当用户登录时,您将用户名存储在php会话中;例如$_会话['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>
它可能非常有用,因为它使我们能够在ajax查询中使用用户名和其他用户数据stoerd作为cookie,用于更新数据库表等

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

例如,在index.php文件中,写入:

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


$(文档).ready(函数(){
var userId=;
警报(用户标识);
})   

**在jQuery中获取当前会话值**
我就是这样使用的->

<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>

函数myFunction(event){var x=event.which;if(x==13){var
=document.getElementById('homepage')。值;
window.location.href=homepage;}else{
document.getElementById(“h1”).innerHTML=“按ENTER键返回…”;}
我正在使用C#mvc应用程序。我在Controller类中创建了一个会话,如下所示

var username= "<%= Session["UserName"]%>";
string description = accessDB.LookupSomeString(key, ImpDate);
this.Session["description"] = description;    
在视图中,我们访问会话值并将其存储在变量中,如下所示 (这在$.ajax中,但我认为它应该在任何jquery中都能工作)


在页面中使用Razor代码会容易得多

在我的示例中,我需要使用会话变量设置一个隐藏字段

$('#clearFormButton').click(function(){
    ResetForm();
    $('#hiddenJobId').val(@Session["jobid"]);
});

这很简单。请记住,您需要在会话前使用@sign for razor语法。

否它返回会话的值,而不是null。请确保在加载视图之前,您的会话已填充值。这不会返回'someKey'的最新值,而是页面初始化时的值。set可能重复“用户名”作为cookieinstead@SparAby你也很仔细地写了问题标题,正如你提到的“Javascript中的会话值”,因此我在这里发布了!如何通过阅读问题标题来发布答案。请同时阅读问题…通过阅读你在这里的文本“会话到期时,我们无法从客户端访问当前会话值?”“。我想知道当会话变量“过期”时如何访问它”?不您无法访问过期的会话,对吗?另外,我想说的是,正确地撰写您的帖子也有助于我们理解……!:)这个问题似乎是关于.NET的,而不是关于PHP的。与OP问题无关……PHP不适合作为.NET问题的解决方案。@SparAby,这可能是因为双引号“未正确删除。您可以尝试var username=”“;