首页

Javascript

Html
Css
Node.js
Electron
移动开发
小程序
工具类
服务端
浏览器相关
前端收藏
其他
关于
公司注册

iframe跨域加载页面cookie丢失的问题

2013年03月05日 发布 阅读(5526) 作者:Jerman

利用iframe跨域加载页面,cookie失效的问题: 主要是浏览器不接受第三方cookie引发的

解决办法

  1. 修改Client的设置

使Client可以接受来自任何网站的Cookie(具体设置在IE选项的隐私页中)(测试通过).
或者将两个domain都设置为受信息站点(测试通过).

  1. 应用的domain修改

简单方案: 两个应用使用同一个domain(没有测试).
复杂方案: 可以在iframe加载的页面里通过setdomain来强制更改(没有测试).

  1. P3P(要了解P3P是什么东东,可访问:http://en.wikipedia.org/wiki/P3P)

第一种: 在要嵌入的内容中(iframe指向的站点)输出P3P的主机头声明,步骤如下:

打开IIS管理器 inetmgr

选择被嵌入iframe源站点或者目录,右键点击打开属性框

切换到HTTP头

添加

自定义HTTP头名: P3P

自定义HTTP头值: CP=”CAO PSA OUR”

关闭属性框退出,即刻生效

第二种: 在被嵌入页面里添加一语句:

ASP.NET中添加:

  1. HttpContext.Current.Response.AddHeader("p3p", "CP=\""IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""")

php中添加:

  1. header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

JSP中添加:

  1. response.setHeader("P3P","CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'")
版权声明:本站文章除特别声明外,均采用署名-非商业性使用-禁止演绎 4.0 国际 许可协议,如需转载,请注明出处