最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
IE下iframe跨域调用session/cookie失效解决办法
时间:2013-10-06 编辑:简简单单 来源:一聚教程网
在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网站中写入
代码如下 | 复制代码 |
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"); |
相关文章
- java中使用Cookie替代Session解决跨域Session失效问题 06-25
- cookie与session跨域登陆代码(ie6,ie7,firefox) 07-19
- HTML简单购物数量小程序代码展示 10-31
- html canvas实现弹幕功能 10-31
- HTML中空格表示的意义 10-31
- html area标签解读 10-31