前端cookies使用总结

cookie是挂在document对象之下的一个对象,访问方式就是document.cookie

设置cookie很简单,直接就是document.cookie=“name1=aaaaa;name2=bbbb”,用分号;隔开表示一个cookie里的两个不同键值对,实际上如果你执行两次document.cookie的赋值,如:

document.cookie="a=aaaa"

document.cookie="b=bbbb"

浏览器执行的是两次对象的属性插入并赋值的过程,所以是不会发生冲突的,同时如果你两次赋值的属性是同名的话自然也就会发生覆盖的效果。

但一次赋值与次赋值还是有所不同的,因为在同一行赋值对于浏览器而言那就是一个cookie,而分两次赋值则属于两个cookie,因为设置cookie时还能设置一个存在时间,一个存在时间是相对于一个cookie而言的,所以上面两种赋值方式就有所不同了。

document.cookie="a=aaaa;

expires=GMT_String;"

(GMT_String是一个GMT格式的时间字符串,比如要设置七天的有效时间,那可以这样:

var date=new Date();

date.setTime(date.getTime()+7**24*3600*1000);

Gmt_String=date.toGMTString();

)


获取cookie值只能通过document.cookie来获取,于是出现一个问题是你分多次设置的cookie最终都是全部一起获取到的,所以此时只能自己再写方法对截取你要的字段了。


而要删除一个cookie的话,只需要把它的时间设置为一个已经过去的时间即可:

document.cookie="a=aaaa;

expires=new Date().setTime(new Date().getTime()-1000).toGMTString();"


cookie中还有一个参数path,它用于设置此cookie的可访问目录,默认情况下是只能访问同一个目录的页面设置的cookie,如www.abc.com/a/a.html与www.abc.com/b/b.html是互不能访问到的,因为一个是a目录,一个是b目录,但是通过设置path,可以让它成为全局可访问,只需要把path设置为根目录即可,如:document.cookie="a=aaaa;path=/"。


还有一种情况是同一个域名下的不同主机,那就需要设置另一个属性domain,这样设置之后才能让不同主机也能互相访问:document.cookie="a=aaaa;domain=abc.com",这样设置就可以实现a.abc.com与b.abc.com之间也能访问对方的cookie

你可能感兴趣的:(前端cookies使用总结)