使用javascript设置会话变量

Sam*_*Sam 24 javascript session-variables

我通过Facebook登录我的网站后得到用户的姓名和电子邮件ID ..我想在登录表单上使用javascript在会话中添加这些变量; 我试过以下:

FB.api('/me', function(me) {
        if (me.name) {
            document.getElementById('auth-displayname').innerHTML = me.name; <% Session["fbName"] = me.name; %>
        }
}
Run Code Online (Sandbox Code Playgroud)

它给出了像我这样的错误(在这一行:<%Session ["fbName"] = me.name;%>)在当前上下文等中不存在.我的div"auth-displayname"正在获得该值,但是我我有会话变量的问题

我怎样才能做到这一点

Use*_*ser 41

您可以使用

sessionStorage.SessionName = "SessionData" ,

sessionStorage.getItem("SessionName")

sessionStorage.setItem("SessionName","SessionData");

请参阅http://caniuse.com/namevalue-storage上支持的浏览器


Hal*_*yon 10

会话存储在服务器端,您无法使用JavaScript对其进行修改.会话可能包含敏感数据.

您可以使用修改cookiedocument.cookie.

您可以轻松找到许多如何修改cookie的示例.


小智 5

您可以更好地使用Web浏览器的localStorage.

你可以在这里找到一个参考


Art*_*mix 5

了解两者非常重要sessionStorage,因为localStorage它们都有不同的用途:

来自MDN

所有网络存储数据都包含在浏览器内的两个类似对象的结构中:sessionStorage 和 localStorage。第一个在浏览器打开时保留数据(浏览器关闭时数据会丢失),第二个即使在浏览器关闭然后再次打开后也保留数据。

sessionStorage- 保存数据直到浏览器关闭,关闭选项卡/浏览器时数据将被删除。

localStorage- 即使在浏览器关闭后“永远”保存数据,但您不应该指望存储的数据稍后会存在,这些数据可能会因为任何原因随时被浏览器删除,或者被用户删除,最佳实践是首先验证数据是否存在,如果存在则继续其余部分。(如果不存在则重新设置)

要了解更多信息,请阅读此处:localStorage | 会话存储