为什么 cookie 登录系统在 iframe 上不起作用?

我在两个不同的子域上有两个不同的站点(使用相同的域):

  1. 主要站点: one.domain.com

  2. iframe 网站: two.domain.com

主站点 ( one.domain.com) 创建一个 iframe 到two.domain.com,第二个站点有一个登录 cookie 系统,它要求输入电子邮件和密码并使用 cookie 跟踪登录用户。

如果直接在上面测试登录系统可以正常工作two.domain.com但是当它two.domain.com被包裹在 iframe 中时登录系统不起作用,经过一些调查看起来这个问题只发生在某些浏览器(主要是 safari)上,原因是浏览器没有允许在 iframe 中设置 cookie,如何解决?


HUH函数
浏览 859回答 2
2回答

紫衣仙女

Safari 有一个保守的 cookie 策略,将 cookie 条目限制为用户选择(“导航到”)的页面。这可能是导致问题的原因。但是,这不适用于跨子域。假设您访问 domain.com,然后您可以从 two.domain.com 设置 cookie,而无需直接用户交互 (iframe)。

呼如林

默认情况下,Safari 会丢弃 iframe 中设置的 cookie,除非为 iframe 提供服务的主机之前在 iframe 之外设置了 cookie。Safari 是唯一能做到这一点的浏览器。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript