php通过p3p头解决cookie跨域访
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 php中通过设置p3p头解决cookie跨域访问问题: 大家都知道cookie是不能跨域的,但可以通过设置p3p头来解决这个问题。 为了测试先编辑hosts文件,加入测试域名(在C:\WINDOWS\system32\drivers\etc\hos
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
php中通过设置p3p头解决cookie跨域访问问题:
大家都知道cookie是不能跨域的,但可以通过设置p3p头来解决这个问题。
为了测试先编辑hosts文件,加入测试域名(在C:\WINDOWS\system32\drivers\etc\hosts)
127.0.0.1 www.a.com
127.0.0.1 www.b.com
首先:创建 a_setcookie.php 文件,内容如下:
//header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");
然后:创建 a_getcookie.php 文件,内容如下:
var_dump($_COOKIE);
最后:创建 b_setcookie.php 文件,内容如下:
三个文件创建完毕后,我们通过浏览器依次访问:
我们会发现,在访问b.com域的时候,我们并没有在a.com域设置上cookie值。
然后我们修改一下a_setcookie.php文件,去掉注释符号,a_setcookie.php即为:
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");
再次通过浏览器依次访问:
这次,你会发现在访问b.com域的时候,我们设置了a.com域的cookie值。
似乎只有IE对跨域访问COOKIE限制比较严格,上述代码在FIREFOX下测试,即使不发送P3P头信息,也能成功。
推荐阅读
-
header函数设置响应头解决php跨域问题实例详解
-
关于Iframe如何跨域访问Cookie和Session的解决方法_PHP
-
关于Iframe如何跨域访问Cookie和Session的解决方法_PHP
-
php通过p3p头解决cookie跨域访
-
php通过p3p头解决cookie跨域访
-
php中cookie跨域的解决方案以及IE和safari浏览器中的坑
-
php借助P3P完成COOKIE跨域操作的方法分享
-
关于Iframe如何跨域访问Cookie和Session的解决方法_PHP教程
-
关于Iframe如何跨域访问Cookie和Session的解决方法_php技巧
-
P3P Header解决Cookie跨域的问题_javascript技巧