31

在他通过 facebook 登录到我的网站后,我正在获取用户的姓名和电子邮件 ID。我想使用 javascript 在登录表单本身的会话中添加这些变量;我试过以下:

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

它给出了像我这样的错误(在这一行中:<%Session["fbName"] = me.name; %>) does not exist in the current context etc.. 我的 div "auth-displayname" 正在获取该值,但我' m 会话变量有问题

我怎样才能做到这一点

4

4 回答 4

56

您可以使用

sessionStorage.SessionName = "SessionData",

sessionStorage.getItem("SessionName")

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

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

于 2013-11-19T19:04:57.103 回答
10

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

您可以使用修改cookiedocument.cookie

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

于 2013-08-06T09:12:35.610 回答
5

您可以更好地使用网络浏览器的localStorage

你可以在这里找到参考

于 2013-08-06T09:14:56.947 回答
4

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

来自MDN

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

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

localStorage- 即使在浏览器关闭后“永远”保存数据你不应该指望你存储的数据以后会在那里,因为几乎任何事情,数据可能随时被浏览器删除,或者被用户删除,最佳实践是首先验证数据是否存在,如果存在则继续其余的。(或者如果它不存在则重新设置)

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

于 2018-12-25T13:26:31.357 回答