百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> IE下iframe跨域调用session/cookie失效解决办法
分享文章到:

IE下iframe跨域调用session/cookie失效解决办法

发布时间:01/15 来源: 浏览: 关键词:
根据分析ie浏览器下导致iframe跨域登录的session与cookie无效丢失的原因是IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,所以就出现了这个问题解决办法只要利用header申明一下就可解决

在frameset里面,也就是里面的frame是来自第三方站点(不同IP或不同域名),那么默认情况下IE会自动禁用这些站点的cookie,也就是在请求某url时在HTTP header里不发送它们的cookie,包括session的cookie。注意,这些站点在response里面设置的cookie还是会被发送到浏览器的。

在用户浏览a.php时 A.com写入的为第一方Cookie,其嵌入的iframe 指向b.php.这时B.com写入的就为第三方Cookie了,所以它是被IE当在了大门外。 所以,每次当用户提交的cookie提交时,就挂掉了.因为传不到真实的服务器.

原因分析

IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie
 

解决方案.

PHP 的程序

可以直接在B网站中写入

 代码如下
<?php
header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘)
?>

这样就能接受第三方的Cookie啦。

一个简单的C#应用

 代码如下

if (Request.Browser.Browser.ToUpper().Contains("IE"))               

Response.Headers.Add("P3P", "CP=CAO PSA OUR");

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有6人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板