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協議)