1.只是二级域名不一样(好比a.xx.com, b.xx.com)php
利用cookie, 设置domain为".xx.com"便可chrome
2.多个本域名都不相同(好比www.a.com, www.b.com)跨域
1).能够在www.a.com的登陆界面利用隐藏iframe + form表单 + js向www.b.com发出请求, b响应设置cookie浏览器
2).能够www.a.com的登陆界面进行跳转, 跳转到www.b.com的登陆界面, 每次都进行cookie设置(头部: set-cookie; location;)安全
3.P3P协议跨域(跨域设置cookie)cookie
在开发中,咱们碰到的跨域主要仍是纠结在IE,页面中的IFRAME或者FRAME或者JS跨域的时候,IE有安全策略限制页面不带cookie,可是若是咱们加上P3P,就没有这策略的限制。这也是P3P来突破跨域的可行前提。dom
如下为摘录的例子:spa
http://www.a.com/a_setcookie.php 文件内容orm
1 <?php 2 setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");
http://www.a.com/a_getcookie.php 文件内容ip
<?php var_dump($_COOKIE);
http://www.b.com/b_setcookie.php 文件内容
1 <script src="http://www.a.com/a_setcookie.php?id=www.b.com"></script>
经过浏览器访问
1.http://www.b.com/b_setcookie.php
2.http://www.a.com/a_getcookie.php
访问1后,咱们并无在2上发现设置上cookie值。并非经过浏览器看js
将http://www.a.com/a_setcookie.php文件内容改成以下
1 <?php 2 header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); 3 setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");
再次访问:
1.http://www.b.com/b_setcookie.php
2.http://www.a.com/a_getcookie.php
在访问b.com域后,设置了a.com域的cookie值。
上面例子能够看出经过发送P3P头信息而实现的跨域。(在Firefox和chrome不发送P3P也能跨域成功,ie必须有P3P协议)