我有一个位于域 A 上的 Web 应用程序,其中包含域 B 上的 iframe。对域 B 上的 src 的请求有一些 Set-Cookie 标头。如果我使用 Safari 或 chrome 加载此网络应用程序,我可以在开发人员工具中看到从 iframe 请求中设置的 cookie。但是,如果我在 iOS 模拟器 (iOS 12( 上访问同一页面,则不会设置 cookie,并且我会收到身份验证错误(由于缺少 cookie(。我没有任何运气在网上找到有关此行为的任何内容,因此我不知道如何解决它。我觉得我一定错过了什么,因为这似乎是一个巨大的缺失功能。
不幸的是,我没有时间为此问题设置简单的复制品。
任何建议都会有所帮助。
问题在于 Safari iOS 不允许从域 B 设置 cookie,除非您"明确访问"域 B.解决方法是访问 iframe 域并在那里设置空白 cookie,然后反弹回原始 A 域。之后,您的"Set-Cookie"指令或您用于设置 Cookie 的任何指令都将被 iOS 允许。
查看此解决方案和讨论(还包括复制设置(: https://gist.github.com/iansltx/18caf551baaa60b79206