cookie的使用以及cookie的跨域名获取
cookie存放容量4k左右,可设置过期时间。
1、cookie的封装使用
//设置cookies function setCookie(name, value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + value + ";expires=" + exp.toGMTString()"; } //读取cookies function getCookie(name) { var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); if (arr = document.cookie.match(reg)) { return arr[2]; } else { return null; } } //删除cookies function delCookie(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval = getCookie(name); if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); } //使用举例 setCookie("REG_GUID","This is set cookie!"); getCookie("REG_GUID");
2、cookie的跨域名使用
简单说下域名,www.baidu.com是个域名,且是个二级域名(它对应的一级域名为baidu.com)。www.baidu.com与blog.baidu.com(对应的一级域名也是baidu.com)是不同的域名,他们之间相互请求cookie是请求不到的。如果想要跨域请求cookie,需要将这两个设置成相同域名。即在存储cookie时使用domain设置域名即可,如下:
//设置cookie,使之能跨域获取 function setCookie(name, value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + value + ";expires=" + exp.toGMTString() + "; path=/" + ";domain=.baidu.com"; }