我是靠谱客的博主 傻傻鸡,最近开发中收集的这篇文章主要介绍子站间 携带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');

最后

以上就是傻傻鸡为你收集整理的子站间 携带cookie_JavaScript cookie 不同子域名之间共享的全部内容,希望文章能够帮你解决子站间 携带cookie_JavaScript cookie 不同子域名之间共享所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部