移动浏览器:iframe缺少Cookie

时间:2018-10-12 22:02:56

标签: cookies mobile-safari

我有一个位于域A上的Web应用程序,其中包含域B上的iframe。对域B上src的请求有一些Set-Cookie标头。如果我使用Safari或chrome加载此Web应用程序,则可以在开发人员工具中看到从iframe请求中设置的cookie。但是,如果我在iOS模拟器(iOS 12)上访问同一页面,则未设置cookie,并且由于缺少cookie,我会收到身份验证错误。我还没有运气在网上找到有关此行为的任何信息,所以我不知道如何解决它。我觉得我必须丢失某些东西,因为这似乎是一个巨大的缺失功能。

不幸的是,我还没有时间为此问题设置简单的副本。

任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

问题出在Safari iOS上,除非您“明确访问” B,否则不允许设置来自域B的Cookie。解决方法是访问iframe域并在其中设置空白Cookie,然后弹回原始A域。之后,iOS将允许您使用“ Set-Cookie”指令或用于设置Cookie的任何内容。

查看此解决方案和讨论(还包括复制设置): https://gist.github.com/iansltx/18caf551baaa60b79206