[js点滴]JavaScript之Cookie/Session机制详解02
2017-06-07 17:56
721 查看
2.Cookie的设置、获取
//获取指定名称的cookie值 <script language="JavaScript" type="text/javascript"> function getCookie(name){ var strCookie=document.cookie; var arrCookie=strCookie.split("; "); for(var i=0;i<arrCookie.length;i++){ var arr=arrCookie[i].split("="); if(arr[0]==name){ return unescape(arr[1]); }else{ return ""; } } } </script>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//添加一个cookie <script language="JavaScript" type="text/javascript"> function addCookie(name,value,expiresHours){ var cookieString=name+"="+escape(value); //判断是否设置过期时间,0代表关闭浏览器时失效 if(expiresHours>0){ var date=new Date(); date.setTime(date.getTime+expiresHours*3600*1000); cookieString=cookieString+"; expires="+date.toGMTString(); } document.cookie=cookieString; } </script>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
4000
.Cookie的修改、删除
Cookie并不提供修改、删除操作。如果要修改某个Cookie,只需要新建一个同名的Cookie,添加到response中覆盖原来的Cookie。//根据指定名称的cookie修改cookie的值 <script language="JavaScript" type="text/javascript"> function editCookie(name,value,expiresHours){ var cookieString=name+"="+escape(value); //判断是否设置过期时间,0代表关闭浏览器时失效 if(expiresHours>0){ var date=new Date(); date.setTime(date.getTime+expiresHours*3600*1000); //单位是多少小时后失效 cookieString=cookieString+"; expires="+date.toGMTString(); } document.cookie=cookieString; } </script>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//删除指定名称的cookie function deleteCookie(CKname) { document.cookie = CKname+"=;expires="+(new Date(0)).toGMTString(); };1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
2. Cookie的域名
Cookie是不可跨域名的。域名www.google.com颁发的Cookie不会被提交到域名www.baidu.com去。这是由Cookie的隐私安全机制决定的。隐私安全机制能够禁止网站非法获取其他网站的Cookie。正常情况下,同一个一级域名下的两个二级域名如www.helloweenvsfei.com和images.helloweenvsfei.com也不能交互使用Cookie,因为二者的域名并不严格相同。如果想所有helloweenvsfei.com名下的二级域名都可以使用该Cookie,需要设置Cookie的domain参数,例如:
Cookie cookie = new Cookie("time","20080808"); // 新建Cookie cookie.setDomain(".helloweenvsfei.com"); // 设置域名 cookie.setPath("/"); // 设置路径 cookie.setMaxAge(Integer.MAX_VALUE);// 设置有效期 response.addCookie(cookie); // 输出到客户端1
2
3
4
5
6
1
2
3
4
5
6
注意:domain参数必须以点(“.”)开始。另外,name相同但domain不同的两个Cookie是两个不同的Cookie。如果想要两个域名完全不同的网站共有Cookie,可以生成两个Cookie,domain属性分别为两个域名,输出到客户端。
3. Cookie的路径
我们在存储信息到cookie中的时候要指定了下path,不然是找不到路径的.//设置Cookie function SetCookie(name, value) { var exp = new Date(); exp.setTime(exp.getTime() + 3 * 24 * 60 * 60 * 1000); //3天过期 document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + exp.toGMTString()+";path=/"; return true; };1
2
3
4
5
6
7
1
2
3
4
5
6
7
4.cookie注意事项
1)说的通俗一点,cookie就是一个字符串(这点可以用alert(typeof document.cookie)来验证),用来保存一些客户信息。 2)程序员可以对其写入任何想写入的东西,只要不超过cookie的大小限制(4kb)。 3)cookie的操作办法最简单的说法就是对document.cookie进行操作(写入你要需保存的内容)。 4)cookie有一个关键字是expires,它是用来设置cookie的有效期的,默认情况(不设置expires)是当浏览器关闭的时候,自动清除cookie。
相关文章推荐
- [js点滴]JavaScript之Cookie/Session机制详解02
- [js点滴]JavaScript之Cookie/Session机制详解01
- [js点滴]JavaScript之Cookie/Session机制详解03
- [js点滴]JavaScript之Cookie/Session机制详解04之区别
- [js点滴]JavaScript之正则表达式详解02
- [js点滴]JavaScript之设备事件之横竖屏判断详解02
- [js点滴]JavaScript之Cookie/Session机制详解01
- [js点滴]JavaScript事件详解大纲
- [js点滴]JavaScript事件详解大纲
- JavaScript之Cookie/Session机制详解04之区别
- [js点滴]JavaScript之cookie技术
- [js点滴]JavaScript基础正则详解03
- [js点滴]JavaScript事件详解
- [js点滴]JavaScript之正则表达式详解01
- [js点滴]JavaScript之cookie技术
- [js点滴]JavaScript之设备事件详解01
- [js点滴]JavaScript事件传播02
- [js点滴]JavaScript事件详解01
- [js点滴(转)]深入学习JavaScript: apply 方法 详解
- javascript跨域操作cookie的点滴记录