JavaScript 的 document.cookie 没有替换子域中的 cookie

JavaScript's document.cookie does not replace cookie in the subdomain

我在设置 cookie 时遇到问题。

当我从像 "subdomain.domain.com" 这样的子域调用 document.cookies = "cookieName=cookieValue;path=/;domain=domain.com"; 时,Chrome 显示在我所在的域和子域上都设置了 cookie。这并不理想,因为我只想要将其设置在域上,但现在对我来说没问题。

问题是当我想替换 cookie 时。如果我调用同一行但使用不同的 cookie 值,如 document.cookies = "cookieName=cookieValue2;path=/;domain=domain.com";,Chrome 显示 cookie 在域中被替换,而不是在子域中。这是个问题。

有人可以帮我解决这个问题吗?

好吧,不确定这是怎么回事,但我发现的解决方法是简单地设置 cookie 两次:一次不指定 domain(它替换子域 cookie),一次用于域:

document.cookies = "cookieName=cookieValue;path=/"; //Replaces the subdomain cookie
document.cookies = "cookieName=cookieValue;path=/;domain=domain.com"; //Replaces the domain cookie