关于IE下iframe里无法读取cookie的问题

在IE下的问题:

  1. http://webmail.mail.yeah.net/js5/main.jsp 页面用iframe嵌入 http://news.163.com/special/163mail_2012/
  2. http://news.163.com/special/163mail_2012/ 中引用 http://api.pr.163.com/mail/user 在.163.com域下发放cookie
  3. http://news.163.com/special/163mail_2012/ 用JavaScript获取不到步骤2中发放的cookie

由于IE特殊的安全策略,在特定的情况下拒绝iframe引用的页面对cookie进行读写。
(参考:http://msdn.microsoft.com/en-us/library/ms537343%28v=vs.85%29.aspx#privacy_preference_settings)

解决方法:在上述例子中的http://api.pr.163.com/mail/user 添加 P3P: “CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR” 响应头。

结论:
如果再遇到无法访问iframe里发放cookie的问题,可以尝试在 cookie的发放地址添加P3P头调试解决。

发表评论