Cookie 的路径以及 Cookie 域,设置同一域名下多个Tomcat共享Cookie

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

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

1
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

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

在项目中的使用实战:
在一个系统例如www.jlspdj.cn/spzzb下 登录之后设置cookie,代码如下:

1
2
3
4
5
$.cookie("userName", userName, { expires: 7,path:'/',domain:'jlspdj.cn'  });
$.cookie("userType", lgUser.userType, { expires: 7,path:'/',domain:'jlspdj.cn' });
$.cookie("perName", lgUser.perName, { expires: 7,path:'/',domain:'jlspdj.cn' });
$.cookie("pwd", lgUser.pwd, { expires: 7,path:'/',domain:'jlspdj.cn' });
$.cookie("systemflag", "1", { expires: 7,path:'/',domain:'jlspdj.cn' });

在另一个系统www.jlspdj.cn/bigdata 中就使用下面代码获取cookie即可判断。

1
var strcookie = document.cookie;

分享到