工作中遇到的问题 从本域A iframe另一个域的页面(是登录页) 验证码总是提示错误 (IE下才有问题,因为那个页要activex 所以开始没怀疑session) 经过排查确定是iframe里的页面生成的cookie是保存不住的;
测试用例如下:
A域页面代码 :
<iframe src="http://B/p3p.php"></iframe>
B域页面
<?php
session_start();
if(!empty($_GET['test'])){
var_dump($_SESSION['p3p']);
}else{
$_SESSION['p3p'] = 'room';
echo "<a href='?test=1'>test</a>";
var_dump($_SESSION['p3p']);
}
?>
IE下点击IFRAME里的链接 打印出NULL
因为IE里iframe是不传输stored_cookie的
资料原文:
The problem lies with a W3C standard called Platform for Privacy Preferences or P3P for short. You can read all about the boring stuff via the link or else just install the P3P Compact Policy header below. This will allow Internet Explorer to accept your third-party cookie. You will need to send the header on every page that sets a cookie.
解决方法是输出个header
PHP:
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
ASP.NET:
HttpContext.Current.Response.AddHeader("p3p","CP=/"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT/"");
JSP:
response.addHeader("P3P","CP=/"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT/"")
试验在设置session的地方输出header即可
.....
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
$_SESSION['p3p'] = 'room';
.....
jsp response.addHeader("P3P","CP=CAO PSA OUR");
分享到:
相关推荐
框架完美解决了iframe之间的跨域通讯。底层技术采用window.name转换代理实现
iframe内容页白块及刷新白色背景问题解决,在IE6,IE9上测试通过。
该文档介绍了vue和普通web页面中iframe实现跨域的解决方案,解决了主页面中无法调用iframe方法的问题
解决下拉菜单被iframe遮住问题吗,
这是关于iframe使用过程中出现的问题整理的解决方法,关于使用iframe不用单独写接口打通数据,直接把数据通过ifarme嵌套方法传递过去,使用简单方便。
首先在父页面的javascript给定义一个window.name,并赋予一个字符串值,如window.name="test",其中赋予的字符串值可以随意定义,然后在Iframe页面的Form 标签中定义target属性,并且其值也必须与之前定义的window....
Iframe自动根据类容改变自己的大小,解决Iframe设置高度后无法缩小!拜一个高人所赐,特表示感谢!
这是一个解决fixed在iframe中失效的解决案例,只要把文件放到编辑器中打开即可看到效果
用iframe 设置验证码!只更新验证码,不刷新页面
IFrame中Session丢失的解决办法
给大家介绍了div被iframe遮住的一些情况,以及被遮住后的解决办法,有需要的朋友们可以参考借鉴。
iframe跨域问题:Uncaught DOMException Blocked a frame with origin解决方法
通过HTTPClient界面在JSP中嵌入iframe子界面跨域时,无法获取跨域界面的属性值的问题
Flex中利用IFrame解决嵌入HTML时Flex组件被遮挡和IFrame被隐藏的问题,包括Flex菜单、弹出界面、右键菜单等功能,本例中只提供解决对Flex 菜单的遮挡问题解决
iframe 跨域访问session问题解决方法
在使用iframe时,iframe背景为白块,刷新时也会闪过白块。如果刷新时间长,就会一直出现白块,让人很烦恼,通过网上搜资料,测试很多依然没有效果,最终解决方法如下所示,注意主要针对IE浏览器测试。
最近做的合作网站嵌入到对方的iframe中去,在safari,opera和有些版本的搜狗浏览器(内核版本原因)中不能读到cookie。
问题描述 当我们使用easyui做后台管理系统的时候,会使用tree组件来实现树形菜单,而我们每点击一次相应菜单,会根据是否有url来判断是否是一级菜单,以及是否已经存在 //根据该节点名字判断该节点是否存在 if ($...
在web开发中,跨域问题是经常遇到的,但是由于浏览器同源策略的限制,不同域之间属性和操作是无法直接交互的。本次讨论iframe和父页面的消息通信。
NULL 博文链接:https://hqlly.iteye.com/blog/1662337