Ist es möglich, den Wert einer dynamischen Variable wie httpRequest.getSession("attr_name") von innerhalb eines JavaScripts zu lesen?
Antworten
Zu viele Anzeigen?(Mit Javascript meine ich, dass Sie Client-Skript im Browser verwenden.)
Nein, das ist nicht möglich. Der Inhalt des Session-Objekts verlässt niemals den Server, daher kann Client-Skript Session-Daten nicht direkt lesen.
Wenn Sie darauf im Browser zugreifen möchten, müssen Sie die Daten aus dem Session-Objekt lesen und sie in der Antwort mit senden (zum Beispiel in einem versteckten Feld) oder einen Webdienst bereitstellen, der Daten aus dem Session-Objekt liest und an den Browser zurücksendet.
Wie ich in meinem Kommentar sagte, wäre der einzige Weg irgendeine Art von Ajax-Aufruf und Anforderung vom Server. Ich weiß nicht, welches Backend du benutzt, so würde ich es in Asp.net MVC und jQuery machen.
(Wenn es kleine Syntaxfehler gibt, entschuldige ich mich - nicht vor einem Compiler)
public class HomeController : Controller
{
//abstrahiere den Sitzungscode, lass das böse JavaScript nicht direkt darauf zugreifen
public string NameAttribute
{
get
{
return Session["attr_name"] as string ?? string.empty;
}
}
[HttpGet]
public string GetNameAttribute()
{
return NameAttribute;
}
public ActionResult Index()
{
return View();
}
}
$(function(){
$.get( 'home/GetNameAttribute', function( response ) {
var name = response; //folge nicht zu vergessen, Fehlerüberprüfung, weggelassen
});
});
Alternativ könntest du immer die Werte, die du brauchst, in versteckte Felder schreiben und sie mit normalem JavaScript lesen.