Подтвердить что ты не робот

Получить текущую ценность сеанса в JavaScript?

У меня есть сценарий, когда я открываю свое веб-приложение в браузере, но в двух отдельных вкладках.

В одной вкладке я вышел из приложения, и в результате все значения сеанса становятся нулевыми. На другой вкладке я нажал на тег привязки в веб-приложении. В событии jquery-on click для привязки я проверил значение сеанса. Здесь я должен получить сеанс как null (поскольку я вышел из приложения с другой вкладки), но я получаю значение сеанса как зарегистрированное пользователем (возможно, потому, что обновление страницы не происходит).

Моя идея - проверить сеанс на jQuery, и если сеанс имеет значение null, выйдите из приложения, иначе отобразите всплывающее окно.

Здесь мой код для получения значения сеанса

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

}))

Как получить текущее значение сеанса в jQuery?

4b9b3361

Ответ 1

Сессия - это серверная вещь, вы не можете получить к ней доступ с помощью jQuery. Вы можете написать обработчик Http (который будет совместно использовать sessionid, если он есть) и вернуть значение с помощью $.ajax.

Ответ 2

Другой подход в вашем 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"]';
    }); 

Ответ 3

Доступ и назначение переменной сеанса с помощью Javascript:

Назначение переменной сеанса ASP.NET с помощью Javascript:

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

Доступ к переменной сеанса ASP.NET с помощью Javascript:

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

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

Уже ответили здесь

Ответ 4

Как я решил, я написал функцию в контроллере и получил доступ к ней через ajax при событии click jQuery

Прежде всего, я хочу поблагодарить @Stefano Altieri за то, что он дал мне представление о том, как реализовать описанный выше сценарий, вы абсолютно правы, мы не можем получить доступ к текущему значению сеанса с клиентов по окончании сеанса.

Также я хотел бы сказать, что правильное чтение вопроса поможет нам тщательно ответить на вопрос.

Ответ 5

Я протестировал этот метод, и это сработало для меня. надеюсь, что это будет полезно.

предполагая, что у вас есть файл с именем index. 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>

теперь вы можете получить доступ к переменной userId в другом блоке script, размещенном в файле index.php, или даже в файле .js, связанном с index.php

ех. в файле index.js

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

он может быть очень полезен, поскольку он позволяет нам использовать имя пользователя и другие пользовательские данные stoerd как файлы cookie в ajax-запросах, для обновления таблиц базы данных и т.д.

Если вы не хотите использовать переменную javascript, чтобы содержать информацию, вы можете использовать вход с "type = 'hidden";

ех. в файле index.php, напишите:

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

однако, таким образом пользователь может видеть скрытый ввод, если он попросит браузер показать исходный код страницы. в исходном представлении скрытый ввод отображается с его содержимым. вы можете обнаружить, что это нежелательно.

Ответ 6

Возьмите скрытое поле с идентификатором или классом и значением с помощью сеанса и получите его в javascript.

Javascript var session = $('# session'). val();//получить jQuery

Ответ 7

попробуйте это

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

Ответ 8

<script type="text/javascript">
$(document).ready(function(){

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

Ответ 9

вот как я использовал ->

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

Ответ 10

Я использую приложение С# mvc. Я создал сеанс в классе Controller, как это

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

в представлении мы получаем доступ к значению сеанса и сохраняем его в переменной, например, так (это внутри $.ajax, но я думаю, что оно должно работать в любом jquery)

var Sessiondescription = '@Session["description"]';
alert(Sessiondescription);