IE block my cookie in iframe
---恢复内容开始---
There is a severe bug that a leader figured it out in a published project.
In IE11, the page refreshs again and again, no contents are displayed.
I followed this problem and recorded it below:
Because of the IE security privacy policy, the cookie in the 3-party can't be allowed in IE. So my cookie is blocked and can't be set successfully.
I have found a wonderful blog that explanes the phenomeno and give the p3p privacy policy solution。
以下部分内容翻译自EricLaw [ex-MSFT]的《A Quick Look at P3P》
https://blogs.msdn.microsoft.com/ieinternals/2013/09/17/a-quick-look-at-p3p/
由于考虑有些网站通过iframe嵌套可能会跟踪你访问的站点,IE在对第三方cookie域会有网页隐私策略,所以限制和阻挡了cookie。
第三方cookie的定义:页面中通过不同的方式接收了不同域的url。不同方式例如:<script>, <img>, <link>, <frame>, <iframe>, <audio>, <video>以及包括设置了withCredentials标识的cross-domain XmlHttpRequest跨域请求。
在我的项目中涉及到子frame,示例:

IE9之前如果cookie被block了,会出现红眼睛进行提示,IE9(包括IE9)之后就不会出现红眼睛提示,并且console控制台也不报任何错误,可以通过 setting=》安全=》网页隐私策略进行查看:

解决方案:
1.避免使用cookie存储
2.如果你避免不了,在3-party中HTTP的response header中设置P3P
如何设置?转载自宏宇转过来的文章(原谅我没找到原文的出处=.=)-- IE里Iframe的Cookie问题解决办法总结(转)
该文章有多重解决方案,我这里提取几种后台设置方案:
只需要设置 P3P HTTP Header,在隐含 iframe 里面跨域设置 cookie 就可以成功。他们所用的内容是: P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR' ASP直接在头部加了头部申明,测试有效。
<%Response.AddHeader "P3P", "CP=CAO PSA OUR"%> php的话,应该是如下写法:
header('P3P: CP=CAO PSA OUR'); ASP.NET的话
通过在代码上加Response.AddHeader("P3P", "CP=CAO PSA OUR")或者在Window服务中将ASP.NET State Service 启动。 JSP:
response.setHeader("P3P","CP=CAO PSA OUR")
关于P3P的了解,请查看官网https://www.w3.org/P3P/。
IE block my cookie in iframe的更多相关文章
- 利用cookie实现iframe刷新时停留在当前页面
这段时间第一次用iframe,发现问题还挺多,这次主要解决了一个用cookie实现iframe刷新时停留在当前页面,具体步骤如下: 1.必须在每一个页面中记录下当前的url并存入cookie中,具体代 ...
- 解决cookie 跨iframe
document.cookie = "name=caoyc;path=/"document.cookie = "age=13;path=/"//时间可以不要,但 ...
- 在iframe中使用cookie需要注意
cookie的使用早已不新鲜了,但是最近在做项目时还是被坑了一把. 那么接下来让我们来看一下这个"坑"是个什么情况! 前提: 1.现在有两个页面A.html, B.html,同时, ...
- 记一次与iframe之间的抗争
iframe这个标签之前了解过这个东西,知道它可以引入外来的网页,但是实际开发中没有用到过.这一次有一个需求是说准备要在网页中嵌套另外一个网站,用iframe这个标签,让我测试一下这个可不可以在自己的 ...
- 一键切换皮肤的解决思想及iframe嵌套时寻找下级iframe的方法
项目中有个一键切换皮肤的功能,感觉还不错,记录下,就是各颜色样式设置起来太复杂了,不知道有没有更简便的方法: 1.切换皮肤结构层 <li title="<s:text name= ...
- iframe底边多出4px或5px解决办法
问题: 在处理iframe框架自适应时,并且已经去掉iframe的边框,但仍然出现底边多出4px或5px高度的情况.如图 <div id="content"> < ...
- 怎么用cookie解决选项卡问题刷新后怎么保持原来的选项?
什么是cookie? Cookies虽然一般都以英文名呈现,但是它还是有一个可爱的中文名“小甜饼”.Cookies是指服务器暂存放在你的电脑里的txt格式的文本文件资料,主要用于网络服务器辨别电脑使用 ...
- cookie domain and cookie path
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie Domain=<domain-value> Opt ...
- A Quick Look at P3P
P3P Made Simple By default, IE will reject cookies coming from 3rd-party contexts. A 3rd-party conte ...
随机推荐
- findFocus-获得拥有焦点的控件
所有的view控件有一个findFocus方法,这个方法如下 /** * Find the view in the hierarchy rooted at this view that current ...
- 56.lambda表达式与绑定以及伪函数和绑定
#include <iostream> #include <functional> using namespace std; using namespace std::plac ...
- Mvc异步
<h3>MVC 自带的yibu请求</h3> <%-- 1.要执行的方法,2.控制器,3.Ajax操作--%> <%using (Ajax.BeginForm ...
- EF中执行Sql语句
Entity Framework是微软出品的高级ORM框架,大多数.NET开发者对这个ORM框架应该不会陌生.本文主要罗列在.NET(ASP.NET/WINFORM)应用程序开发中使用Entity F ...
- maven项目引入sqljdbc4 找不到包的完美 解决方案
今天碰到了这个问题,解决了,顺便做一下记录.首先来 重现 一下这个问题,maven install报错,说 找不到这个包,但是其实 我已经安装了. 我们 再来 看看 maven本地仓库里面有 什么,这 ...
- 洛谷 P3505 [POI2010]TEL-Teleportation
P3505 [POI2010]TEL-Teleportation 题目描述 King Byteasar is the ruler of the whole solar system that cont ...
- WIN8.1 上安装 debian8.7 遇到的问题及解决方法
WIN8.1 上安装 debian8.7 遇到的问题及解决方法 参照百度经验 <win7下硬盘安装debian7> ( http://jingyan.baidu.com/article/8 ...
- Android学习笔记进阶18之画图并保存图片到本地
1.首先创建一个Bitmap图片,并指定大小: 2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可: 3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...
- WdatePicker日期控件的使用
将压缩包中的文件连带文件夹添加到项目中去,注意要完整的添加到项目中去,不要更改了其目录结构 然后在aspx页面中直接使用即可: 首先引入: <script src="/Controls ...
- CISP/CISA 每日一题 16
CISA 每日一题(答) 作业调度软件的优点: 1.作业信息仅需建立一次,减少错误发生概率: 2.可定义作业间的依赖关系,当某一项作业失败时,依赖于该作业的后续作业就不会被执行: 3.所有成功或失败的 ...