我有多个页面,
login.html
-a.html
-b.html
.
.
-z.html
当用户登录时,我希望所有这个页面都可以获取用户信息,如user_id和user_name。 但没有会话,我怎么能只在javascript中做到这一点?
答案 0 :(得分:3)
有很多方法可以解决您的问题:
您可以使用浏览器Cookie获取特定域的数据,就像您在此W3 school page上看到的那样。一种尝试是您可以使用服务器端读取cookie
要设置Cookie浏览器,您可以执行以下操作:
var user_name = "John Doe"
var user_id = 1235456
document.cookie = "user_name=" + user_name;
document.cookie = "user_id=" + user_id;
要获取数据,您可以使用在kirlich's answer上创建的此功能:
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
getCookie("user_name"); // => John Doe
本地存储有区别,它只能由客户端读取。将您的数据安全地设置为Cross-site request forgery:
localStorage.setItem("user_name", "John Doe");
localStorage.getItem("user_name"); // => "John Doe"
sessionStorage对象等于localStorage对象,但它只存储一个会话的数据。当用户关闭特定浏览器选项卡时,将删除数据。
sessionStorage.username = "John Doe";
console.log(sessionStorage.username); // => "John Doe"
答案 1 :(得分:0)
使用localStorage
var userId = document.getElementById('userId').value;
localStorage.setItem('User Id', userId);
然后在每个html页面上获取用户ID:
var someVariable = localStorage.getItem('User Id');