昨天我有类似的问题,发现解决方案。我希望这也能帮助别人。
问题:假设有一个网站www.somewebsite.com和里面IFRAME whcih从我的服务器加载PHP文件,www.myserver.com/welcome.php。网站加载成功,以及我的欢迎页面,它显示了“Hello Bob”之类的东西,所以它成功找到了用户并登录了他。
之后,我的JavaScript正在调用另一个PHP文件的AJAX调用,处于“未经授权”状态,因此SESSION数据完全丢失。页面刷新后,一切工作正常。这只发生在IE8下!
我认为问题在于发送会话cookie到服务器,但是当我安装Fiddler时,我发现IE8正确地发送了cookies以及PHPSESSID,但服务器有点无法检测到正确的SESSION对象。另一个奇怪的是,第2次的服务器发送以下标题:
P3P:CP = “IDC DSP COR ADM德维戴氏PSA PSD IVAi IVDI CONI他对我们IND CNT”
,但第一次没有。在PHP脚本中手动添加该标题后,所有事情都像一个魅力!
然后,当我用Google搜索的是“P3P胡言乱语”,我发现下面的网站:
http://adamyoung.net/IE-Blocking-iFrame-Cookies
结论:确保您要发送每一个设置一个cookie首页的页眉。
这是不是不仅关系到IE8 + PHP组合,同样的问题在IE8 +的情况下,ASP.NET,IE8 + JSP情况等
难道IE 8发正常请求上的Cookie? – Gumbo 2009-03-04 17:54:15
正常请求工作正常,但在ajax请求清除cookie后。 – 2009-03-05 10:41:36