6

IE 和 Safari 浏览器在 iframe 中阻止跨域 cookie。

例如,我有两个网站,假设它们是example.comanotherexample.net

example.com,我有一个页面http://example.com/someform.asp,在这个页面中我使用 cookie。当我http://example.com/someform.asp直接在浏览器中打开时,它工作正常。

anotherexample.net,我有页面http://anotherexample.net/page.asp,这个页面包含一个IFRAME SRC="http://example.com/someform.asp". 现在,当我们http://anotherexample.net/page.asp在浏览器中打开页面时,cookieexample.com不会保存。在 Firefox 和 chrome 中不会出现这个问题。

我发现使用 p3p 策略我们可以解决这个问题,但是在 IIS 响应标头中设置低于 p3p 策略后,它仅适用于 IE。

P3P : CP="This is  a P3P policy! See  http://www.workplaceanswers.com/privacy-and-terms/"

但是,我在 Safari 中仍然遇到同样的错误。我尝试了如下不同的 p3p 策略值,但无法修复它。

P3P : CP="CUR ADM DEV HIS TEL STA STP COM”
P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT”
P3P:CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA”

有什么办法可以在 Safari 中完成这项工作吗?

4

2 回答 2

2

Vitaliy Ryepnoy在 github 上发布了一个解决方案: https ://github.com/vitr/safari-cookie-in-iframe

example.com要点iframe.com/fix_safari.html:在主窗口example.com

然后,safari 让我们在 iframe 中设置一个 cookie,因为那里已经有一个 cookieiframe.com

经过数小时的挫折,为我工作

github页面中的更多详细信息和代码示例

于 2017-05-10T08:55:00.983 回答
0

实际上,我在 mac 和 iPhone 设备的 safari 网络浏览器中遇到了跨域 cookie 问题。因此,我在客户端计算机上创建了一个临时文件,并将所有 cookie 保存在该临时文件中,用于一个域。当我尝试从另一个域文件中读取该 cookie 时,我在该文件中进行了更改,例如如果未设置 cookie,则从该临时文件中获取 cookie 数据并再次为第二个域设置 cookie。它的工作很成功。

于 2016-01-16T07:15:07.420 回答