使用javascript设置跨子域cookie

问题描述 投票:24回答:2

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

javascript setcookie
2个回答
48
投票

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

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

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

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

现在,example.com的所有子域都可以访问此cookie,例如login.example.com


0
投票

在我的情况下,我们需要设置一个可以在我们的.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等,但原则可以使用

© www.soinside.com 2019 - 2024. All rights reserved.