在IE9中没有在iframe中发送Cookie

Pet*_*hof 26 cookies iframe internet-explorer

首先,我在发布这个问题之前做过一些研究,所以我知道P3P政策MSDN的相关文章.据我所知,这项政策主要(如果不是)适用于IE6.我的具体问题是IE9.此外,我做的第一件事就是建立一个策略(它有效,因为它在IE的隐私报告中显示了摘要).

我的测试用例如下:我有一个包含iframe的页面.iframe文档Set-Cookie:sid=2b5540e0e4f27075ca4709851700137d; expires=Tue, 28-Jun-2011 07:27:41 GMT; path=/为根路径上的当前域设置会话cookie(完整的HTTP标头:),该会话cookie 在一周内到期.没有问题,这已经在生产中运行(独立,而不是在iframe中)一段时间了.

问题是:iframe文档有一些javascript首先执行一些HTTP请求(由jQuery完成),然后重定向用户(通过更改document.location属性).请求发送cookie,但重定向不会.

我已经在IE中捕获了网络事件,我可以找到的两种请求之间的唯一区别是发起者:XHR由JS库完成,另一个是通过单击完成.但是我真的怀疑点击不会发送cookie.

我想知道为什么我的cookie没有发送,谷歌分析cookie被发送,所以它应该是可能的.

更新: 这绝对是一个隐私区域问题:当将IE中的隐私栏设置降低到所有时,它可以工作.其他设置都失败了.

我已经创建了一个精确的测试床:这是正在使用的实际iframe.要测试它,你必须填写荷兰邮政编码(抱歉;)),使用的占位符很好:1234 AB和1.提交后你得到一个模态,当它完成后你应该被重定向到结果页面.在IE中,重定向显示与您开始时完全相同的页面(因为没有设置cookie).

Car*_*ñoz 11

您是否尝试过添加P3P标头?它并不像那篇文章那么难.

例如在PHP中,只需在php文件的顶部添加此标头:

<?php
    header('p3p: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"');
?>
Run Code Online (Sandbox Code Playgroud)

这个确切的问题,但在不同的背景下工作:Facebook应用程序适用于所有浏览器,但不适用于IE8


sym*_*ean 0

这是否与 cookie 的生成顺序有关 - 即,GA cookie 是否在 iframe 加载之前存在,但会话 cookie 在加载时设置?

代码在哪里?

通过更改 document.location 属性

您是直接向位置对象分配值,还是使用 location.replace() 或 location.href=...?