Cookie域

domain表示的是cookie所在的域,默认为请求的地址. 默认cookie的域是当前域名。

如何解决跨域访问的问题呢?我们可以通过指定可访问cookie的domain属性来进行设置。

如网址为www.jb51.net/test/test.aspx,那么domain默认为www.jb51.net。而跨域访问,如域A为t1.test.com,域B为t2.test.com,那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.test.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为t2.test.com。

这里需要注意一点:为了保证安全性,不能把domain的值设置成非主域的域名,一定是同域之间的访问。

 

关于cookie域理解:

1.声明三个域名:

    cchengone.com:此为顶级域名

    xxx.cchengone.com:二级域名

2.访问cchengone.com域名下的url时,可以设置此域名的cookie,不能设置二级域名的cookie

3.访问xxx.cchengone.com域名下的url时,可设置此域名的cookie,也可以指定设置顶级域名cchengone.com的cookie,且xxx.cchengone.com能获取到自己域名下的所有cookie以及cchengone.com域名下的所有cookie,也就说,子域名共享顶级域名的cookie。

但是,在访问cchengone.com域名时,不能设置xxx.cchengone.com域名下的cookie,就算设置了,浏览器也不会生效该设置。

当我们想实现跨域共享cookie的时候,很容易会想到 在a.com 下写cookie进b.com下, 例如在a网站下 cookies.setDomain(b.com).这种方式是不行的,因为跨域是写不进b.com下的cookies,这种情况下,最简单的方法是在b.com下提供一个方法给a网站调用,a网站通过<script src='b.com/setCookie()'/> 把要写进cookies信息带上,这样就会把cookie信息写进b.com域名下

如果不设置cookie呢?

先说第一个问题,如果不显式设置cookie,那么浏览器会生成一个只针对当前域名的cookie子域名拿不到这个cookie

猜你喜欢

转载自blog.csdn.net/qq_36470686/article/details/82980630