【发布时间】:2018-04-01 01:58:33
【问题描述】:
鉴于 CORS API 需要会话 cookie 来跟踪用户在结帐过程中的移动,因此在多个浏览器中存在问题,即在用户访问托管 API 的站点之后才设置 cookie。
例如:
johnny.com 使用来自 jacob.com 的 CORS JSON API。 jacob.com 设置了一个 第一次 AJAX 调用后的 cookie,但某些浏览器不会 为后续调用设置 cookie。因此 API 不会 按预期运行。
浏览器行为:
Chrome 似乎运行良好,除非“第三方 cookie”是 故意禁用。似乎没有解决方法 这个。
IE 不允许初始设置 cookie,除非初始调用返回 P3P 隐私策略标头。
Safari 不允许最初设置 cookie,除非使用了 hack(请参阅:http://measurablewins.gregjxn.com/2014/02/safari-setting-third-party-iframe.html)
非常感谢任何有关如何解决这些问题的见解。
【问题讨论】:
-
我现在面临着完全相同的情况。您找到适合您需求的解决方案了吗?
-
我见过的最佳解决方案是创建大量 iframe 来加载和管理来自其他域的数据。这需要额外的标头修改,以便网站允许来自其他域的 iframe。
-
感谢您的指点。即使框架加载了另一个域,cookie 是否在 iframe 中工作?
-
是的。我个人从来没有遇到过 iframe 中的 cookie 问题。只要 iframe 加载,cookie 就会工作。
标签: api session cookies cross-domain