作者:936383130_54f13e | 来源:互联网 | 2023-08-14 16:02
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";
}