使用javascript设置跨子域cookie

发布于 2024-10-12 09:16:12 字数 181 浏览 9 评论 0原文

我应该如何为这些函数添加域支持?我想实现将 .example.com 声明为域,以便可以跨 example.com 的所有子域读取 cookie。在当前形式中,由于未设置域,因此只能从 www.example.com 读取

How should I add domain support to these functions? I want to achieve that .example.com is declared as domain, so that the cookies can be read across all subdomains of the example.com. In its current form since domain is not set, it can only be read from www.example.com

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

韶华倾负 2024-10-19 09:16:12

以下是有关如何在域中共享 Cookie 的链接:

https://www.thoughtco。 com/javascript-by-example-2037272

它涉及设置 cookie 字符串的域属性,例如:

document.cookie = "myValue=5;path=/;domain=example.com";

此 cookie 现在应该可供 example.com 的所有子域(如 login.example.com)访问

Here is a link on how to share cookies amongst a domain:

https://www.thoughtco.com/javascript-by-example-2037272

It involves setting the domain attribute of the cookie string like:

document.cookie = "myValue=5;path=/;domain=example.com";

This cookie should now be accessible to all sub domains of example.com like login.example.com

別甾虛僞 2024-10-19 09:16:12

就我而言,我们需要设置一个可以跨 .com 子域工作的 cookie:

function setCrossSubdomainCookie(name, value, days) {
  const assign = name + "=" + escape(value) + ";";
  const d = new Date();
  d.setTime(d.getTime() + (days*24*60*60*1000));
  const expires = "expires="+ d.toUTCString() + ";";
  const path = "path=/;";
  const domain = "domain=" + (document.domain.match(/[^\.]*\.[^.]*$/)[0]) + ";";
  document.cookie = assign + expires + path + domain;
}

这可能不适用于 .co.uk 等,但可以使用原理

In my case we needed to set a cookie that would work across our .com subdomains:

function setCrossSubdomainCookie(name, value, days) {
  const assign = name + "=" + escape(value) + ";";
  const d = new Date();
  d.setTime(d.getTime() + (days*24*60*60*1000));
  const expires = "expires="+ d.toUTCString() + ";";
  const path = "path=/;";
  const domain = "domain=" + (document.domain.match(/[^\.]*\.[^.]*$/)[0]) + ";";
  document.cookie = assign + expires + path + domain;
}

This might not work for .co.uk etc but the principle can be used

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文