it-swarm.com.de

Aktuellen Sitzungswert in JavaScript abrufen

In einem Szenario öffne ich meine Webanwendung in einem Browser, jedoch auf zwei separaten Registerkarten.

In einer Registerkarte habe ich mich von der Anwendung abgemeldet, und als Ergebnis werden alle Sitzungswerte zu Null. In der anderen Registerkarte habe ich in der Webapplikation auf ein Ankertag geklickt. Im Jquery-On-Click-Ereignis des Ankertags habe ich den Sitzungswert überprüft. Hier sollte ich die Sitzung als null erhalten (da ich die Anwendung von der anderen Registerkarte abgemeldet habe), aber ich bekomme den Sitzungswert als angemeldeter Benutzer (wahrscheinlich weil keine Seitenaktualisierung erfolgt).

Meine Idee ist, die Sitzung auf jQuery zu überprüfen. Wenn die Sitzung null ist, die Anwendung abmelden, andernfalls eine Popup-Seite anzeigen.

Hier ist mein Code zum Abrufen des Sitzungswerts

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

}))

Wie kann ich den aktuellen Sitzungswert in jQuery abrufen?

31
SparAby

Die Sitzung ist eine serverseitige Sache, Sie können nicht mit jQuery ..__ darauf zugreifen. Sie können einen Http-Handler schreiben (der die Sitzungs-ID, falls vorhanden, gemeinsam nutzt) und den Wert von dort mit $.ajax zurückgibt.

35
Stefano Altieri

Ein anderer Ansatz istin Ihrer HTML-Datei

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

und das Skript ist

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

oder Sie können direkt über

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

Sitzungsvariable über Javascript aufrufen und zuweisen:

Zuweisen der ASP.NET-Sitzungsvariablen mit Javascript:

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

Zugriff auf ASP.NET-Sitzungsvariable mit Javascript:

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

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

Bereits hier beantwortet

5
SHEKHAR SHETE

Die Art und Weise, die ich gelöst habe, war, ich habe eine Funktion im Controller geschrieben und über Ajax auf das Jquery-Click-Ereignis zugegriffen

Zunächst möchte ich mich bei @Stefano Altieri dafür bedanken, dass Sie mir eine Vorstellung davon gegeben haben, wie das obige Szenario implementiert werden soll. Sie haben absolut Recht, dass wir nicht auf den aktuellen Sitzungswert zugreifen können, wenn die Sitzung abläuft.

Ich möchte auch sagen, dass das richtige Lesen der Frage uns helfen wird, die Frage sorgfältig zu beantworten.

4
SparAby

ich habe diese Methode getestet und für mich funktioniert. hoffe es ist nützlich.

vorausgesetzt, Sie haben eine Datei namens index. php
und wenn sich der Benutzer anmeldet, speichern Sie den Benutzernamen in einer PHP-Sitzung. Ex. $ _SESSION ['Benutzername'];

sie können dies in Ihrer index.php-Datei tun 

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

jetzt können Sie auf die Variable userId in einem anderen Skriptblock zugreifen, der in der Datei index.php oder sogar in einer mit der index.php verknüpften .js-Datei platziert ist

ex. in der Datei index.js 

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

es kann sehr nützlich sein, da es uns ermöglicht, den Benutzernamen und andere Benutzerdaten, die als Cookies in Ajax-Abfragen verwendet werden, zum Aktualisieren von Datenbanktabellen und dergleichen zu verwenden.

wenn Sie nicht möchten, dass eine JavaScript-Variable die Informationen enthält, können Sie eine Eingabe mit "type = 'hidden";

ex. Schreiben Sie in Ihre index.php-Datei:

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

auf diese Weise kann der Benutzer jedoch die verborgene Eingabe sehen, wenn er den Browser auffordert, den Quellcode der Seite anzuzeigen. In der Quellansicht ist die verborgene Eingabe mit ihrem Inhalt sichtbar. Sie finden das möglicherweise unerwünscht.

3
Faradin

Nimm verstecktes Feld mit ID oder Klasse und Wert mit Session und erhalte es in Javascript.

Javascript Var session = $ ('# session'). Val (); // get by jQuery

1

so habe ich verwendet ->

<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

Ich verwende C # MVC Application. Ich habe eine Sitzung in der Controller-Klasse wie folgt erstellt

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

in der Ansicht greifen wir auf den Sitzungswert zu und speichern ihn in einer Variablen wie dieser (Dies ist innerhalb eines $ .ajax, aber ich denke, es sollte in jeder Jquery funktionieren)

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

versuchen Sie es so

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