document.cookie 的一系列问题 - archering/basic GitHub Wiki

无论写入cookie的封装如何写,最终还是通过

document.cookie = "key=" + encodeURIComponent(value) 写入cookie的

不能使用变量引用的方式 cookie = document.cookie cookie = "key=" + encodeURIComponent(value) 这样不会报错,但是写入不了cookie


** You cannot read through cookies based on path using javascript.**

cookie ,默认情况下,出于安全方面的考虑,只有与创建 cookie 的页面处于同一个目录或在创建cookie页面的子目录下的网页才可以访问。那么此时如果希望其父级或者整个网页都能够使用cookie,就需要进行路径的设置。

让这个设置的cookie 能被其他目录或者父级的目录访问的方法:

document.cookie = "userName = 独行冰海; path=/"; / 根目录的意思

路径能解决在同一个域下访问 cookie 的问题,那么如何解决同一个主域下的访问问题呢?我们可以通过指定可访问cookie的主机名来进行设置。

document.cookie="name=value; domain=cookieDomain";

例如 "www.baidu.com" 与 "mp3.baidu.com" 公用一个关联的域名"baidu.com",我们如果想让 "www.baidu.com" 下的cookie被 "mp3.baidu.com" 访问,我们就需要用到 cookie 的domain属性,并且需要把path属性设置为 "/"

这里需要注意一点:一定的是同域之间的访问,不能把domain的值设置成非主域的域名

默认cookie的域是当前域名,默认的路径的设置cookie时的当前页面的目录路径。如果想要跨域或者在其他的路径下访问cookie就必须要重新设置这两个属性,domain和path。

www.baidu.com/content/example/3.jsp 则域domain为www.baidu.com, 路径path为/content/example

document.cookie = "username=独行冰海; path=/; domain=baidu.com"