JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。
而Cookie 是运行在客户端的,所以可以用JS来设置Cookie 。
一、什么是Cookie
Cookie 是一些数据, 存储于你电脑上的文本文件中(缓存用户信息到浏览器——本地文件)。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie 的作用就是用于解决 “如何记录客户端的用户信息”:
当用户访问 web 页面时,他的名字可以记录在 cookie 中。
在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。
当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。
Cookie 以键值对形式存储,即key=value的格式(如下所示)。每个键值对之间一般是以“;”分隔。
username=John Doe
二、使用 JavaScript 创建Cookie
JavaScript 可以使用 document.cookie
属性来创建 、读取、及删除 cookie。
JavaScript 中,创建 cookie 如下所示:
//创建一条cookie
document.cookie = "user1=zhangsan;domain=localhost;expires=Mon, 13 Jul 2020 08:40:43 GMT;path=/";
上例中:
expires
为 cookie 添加一个过期时间(以 UTC 或 GMT 时间)。默认情况下,cookie 在浏览器关闭时删除;
domain
设置该 cookie 所属的域名;
path
参数告诉浏览器 cookie 的路径。默认情况下,cookie 属于当前页面。
三、使用 JavaScript 读取 Cookie
document.cookie
将以字符串的方式返回所有的 cookie,类型格式: cookie1=value; cookie2=value; cookie3=value;
比如,获取上例中的cookie:
console.log(document.cookie); //user1=zhangsan
获取上例中cookie对应的值:
console.log(document.cookie.split(";")[0].split("=")[1]); //张三
将获取到的cookie以键:值的形式放到一个对象里边:
var s = document.cookie;
function parse() {
var arr = s.split(";");
var obj = {};
for (var i = 0; i < arr.length; i++) {
var t = arr[i].replace(/\s/g, "").split("=");
obj[t[0]] = t[1];
}
return obj;
}
var cookie = parse();
console.log(cookie);
四、使用 JavaScript 删除 Cookie
只需要设置该条cookie的 expires 参数为以前的时间即可。