子站间 携带cookie_JavaScript cookie 不同子域名之间共享

js 设置 cookie的时候,默认会存放在当前域名下,如果想要在子域名之间共享,

如a.example.com下设置cookie, 在b.example.com下使用,

需要如下设置:

var Cookie =

{

set: function(name, value, days)

{

var domain, domainParts, date, expires, host;

if (days)

{

date = new Date();

date.setTime(date.getTime()+(days*24*60*60*1000));

expires = "; expires="+date.toGMTString();

}

else

{

expires = "";

}

host = location.host;

if (host.split('.').length === 1)

{

// no "." in a domain - it's localhost or something similar

document.cookie = name+"="+value+expires+"; path=/";

}

else

{

// Remember the cookie on all subdomains.

//

// Start with trying to set cookie to the top domain.

// (example: if user is on foo.com, try to set

// cookie to domain ".com")

//

// If the cookie will not be set, it means ".com"

// is a top level domain and we need to

// set the cookie to ".foo.com"

domainParts = host.split('.');

domainParts.shift();

domain = '.'+domainParts.join('.');

document.cookie = name+"="+value+expires+"; path=/; domain="+domain;

// check if cookie was successfuly set to the given domain

// (otherwise it was a Top-Level Domain)

if (Cookie.get(name) == null || Cookie.get(name) != value)

{

// append "." to current domain

domain = '.'+host;

document.cookie = name+"="+value+expires+"; path=/; domain="+domain;

}

}

},

get: function(name)

{

var nameEQ = name + "=";

var ca = document.cookie.split(';');

for (var i=0; i < ca.length; i++)

{

var c = ca[i];

while (c.charAt(0)==' ')

{

c = c.substring(1,c.length);

}

if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

}

return null;

},

erase: function(name)

{

Cookie.set(name, '', -1);

}

};

调用方法:

Cookie.set('test', '123');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值