关于跨域获取cookie问题的解决
需求是有2个域名:www.a.com和www.b.com,b.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.com中set_cookie.php代码中的 P3P header主要是针对IE浏览器拒绝第三方cookie的问题。
不同浏览器的第三方 cookie 规则
IE | chrome | firefox | SAFARI | OPERA | |
限制第三方cookie | 是 | 否 | 否 | 是 | 否 |