IE9 中的 iframe 中未发送 Cookie

2024-01-27

首先,我在发布这个问题之前做了一些研究,所以我知道P3P政策 https://stackoverflow.com/questions/389456/cookie-blocked-not-saved-in-iframe-in-internet-explorer and MSDN 文章 http://msdn.microsoft.com/en-us/library/ms537343%28VS.85%29.aspx#unsatisfactory_cookies关于它。据我了解,该政策主要(如果不是唯一)适用于 IE6。我的具体问题是 IE9。此外,我做的第一件事就是制定一项政策(并且它有效,因为它在 IE 隐私报告中显示了摘要)。

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

问题是这样的:iframe 文档有一些 javascript,它首先执行一些 HTTP 请求(由 jQuery 完成),然后重定向用户(通过更改document.location财产)。要求do发送 cookie,但重定向doesn't.

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

我想知道为什么我的 cookie 没有发送,而 Google Analytics cookie 被发送,所以这应该是可能的。

UPDATE:这绝对是一个隐私区域问题:当将 IE 中的隐私栏设置降低到全部时,它会起作用。所有其他设置都会失败。

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


您是否尝试过添加 P3P 标头?这并不像那篇文章说的那么困难。

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

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

这个确切的问题但在不同的上下文中起作用:Facebook 应用程序适用于所有浏览器,但不适用于 IE8 https://stackoverflow.com/questions/4467326/facebook-app-works-on-all-browsers-but-not-ie8/4467396#4467396

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IE9 中的 iframe 中未发送 Cookie 的相关文章

随机推荐