关于跨域获取cookie问题的解决

需求是有2个域名:www.a.comwww.b.comb.com需要获取a.com中的cookie,解决方法是这样的:

a.com编写一个设置cookie的页面:set_cookie.php 代码如下:

<script src="http://www.b.com/set_cookie.php?name=yhp"></script>
										

b.com编写一个设置cookie的页面:set_cookie.php 代码如下:

header("P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");

setcookie("cookie_name", $_GET['name'],time()+365*24*60*60);

b.com编写一个获取cookie的页面:get_cookie.php 代码如下:

echo
						var_dump($_COOKIE);

我们先访问 www.a.com/set_cookie.php再访问 www.b.com/get_cookie.php,发现已经可以获取到cookie了,这其实就是做了一个中转的技巧,b.comset_cookie.php代码中的 P3P header主要是针对IE浏览器拒绝第三方cookie的问题。

不同浏览器的第三方 cookie 规则

  

IE

chrome

firefox

SAFARI 

OPERA

限制第三方cookie