目的,了解cookie的读写及修改
cookie修改条件:必须同时满足四个条件:Cookie的key、domain、path和secure都匹配
参考:MDN
1.基本信息
cookie 保存一下几个信息:
1. Cookie的名字
2. Cookie的值 ( value属性)
3. 到期时间 (expires属性,必须把Date类型通过toUTCString)转换为字符串
4. 所属域名(默认是当前域名) (domain属性)
5. 生效的路径(默认是当前网址) (path属性)
6. secure(属性用来指定Cookie只能在加密协议HTTPS下发送到服务器。)
7. max-age(属性用来指定Cookie有效期,比如60 * 60 * 24 * 365(即一年31536e3秒))。
8. HttpOnly(属性用于设置该Cookie不能被JavaScript读取)
2.具体操作
1.简单操作
document.cookie = "name=oeschger";
document.cookie = "favorite_food=tripe";
alert(document.cookie);
// 显示: name=oeschger;favorite_food=tripe
注意:document.cookie 为字符串拼接,并不是覆盖
2.对于expires操作
var date = new Date();
//将时间设置成30分钟以后
date.setTime(date.getTime() + 30 * 60 * 1000);
//name=zhangsan将在30分钟后过期
document.cookie = "name=zhangsan;expires="+date.toUTCString();
"name=caoyi;expires=Sat, 19 Nov 2016 03:17:44 GMT"
结果:重点 express必须为toUTCString(),否则 为seesion
document.cookie = "name=caoyi;max-age="+60*60*24;
console.log(new Date().toUTCString());
//=> VM216:6 Sat, 19 Nov 2016 03:04:27 GMT
Exprires 存放的时间字符串 是格林尼治标准时间;
max-age也是 new Date()=> 转换为格林尼治时间 =>再加秒数 =>转换为格林尼治时间
3.轮子
1.从GitHub中 找了几个项目
jquery-cookie
js-cookie
2.研究一下【js-cookie】的源码
整体是一个:
具体参见后续