首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在域上创建JavaScript cookie并跨子域读取它

在域上创建JavaScript cookie并跨子域读取它
EN

Stack Overflow用户
提问于 2011-04-15 09:14:24
回答 4查看 248.2K关注 0票数 112

下面是一个在用户计算机上写了12个月的JavaScript cookie。

在我们的主域(如example.com )上设置cookie之后,如果用户访问像test.example.com这样的子域,我们需要继续识别用户在“测试”子域中的活动。

但是在当前的代码中,一旦他们离开www.example.com并访问test.example.com,他们就不再被标记为"HelloWorld“。

是否有人能够帮助我的代码,以允许跨子域读取cookie?

代码语言:javascript
复制
<script type="text/javascript">
  var cookieName = 'HelloWorld';
  var cookieValue = 'HelloWorld';
  var myDate = new Date();
  myDate.setMonth(myDate.getMonth() + 12);
  document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate;
</script>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-15 09:17:40

只需在cookie上设置domainpath属性,如下所示:

代码语言:javascript
复制
<script type="text/javascript">
var cookieName = 'HelloWorld';
var cookieValue = 'HelloWorld';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate 
                  + ";domain=.example.com;path=/";
</script>
票数 226
EN

Stack Overflow用户

发布于 2011-04-15 09:17:40

您需要:

代码语言:javascript
复制
document.cookie = cookieName +"=" + cookieValue + ";domain=.example.com;path=/;expires=" + myDate;

根据RFC 2109,要使cookie可用于所有子域,您必须在您的域前面放置一个.

设置路径=/将使cookie在整个指定的域(也称为.example.com)内可用。

票数 34
EN

Stack Overflow用户

发布于 2016-02-13 00:42:01

下面是一个有效的示例:

代码语言:javascript
复制
document.cookie = "testCookie=cookieval; domain=." + 
location.hostname.split('.').reverse()[1] + "." + 
location.hostname.split('.').reverse()[0] + "; path=/"

这是一个通用的解决方案,它从location对象中获取根域并设置cookie。这是因为你不知道你有多少个子域。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5671451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档