跨域iFrame无法读取同域预存localStorage的偶发问题求助
偶发跨域LocalStorage读取问题排查求助
我们遇到一个偶发问题:在单独浏览器标签页的internal.com域名下将数据存入localStorage后,在另一域名external.com的iFrame中加载internal.com时,无法读取这些数据。问题仅出现在部分特定用户身上,本地无法复现,且出现问题的用户大多使用Windows系统,从8月初开始出现。
具体操作流程
- 打开新标签页访问
internal.com类项目域名 - 用户登录并将访问令牌存储至localStorage
- 打开
external.com类客户项目域名 - 确认第三方Cookies已启用
- 在
external.com下添加指向internal.com的iFrame - 验证
internal.com内容已按预期加载到iFrame中
结果对比
- 预期结果:
external.com标签页下的internal.com域名iFrame的localStorage中,能看到此前在internal.com标签页设置的数据 - 实际结果:该iFrame的localStorage为空
我们已排查所有可能的浏览器设置,包括第三方Cookies和CORS策略,暂未找到原因。
目前发现Chromium社区有相关问题讨论:
- Chromium Issue 1482192(第9条评论)
- Blink-dev邮件组中关于跨上下文存储隔离的相关讨论
- Chromium Issue 1476059
内容的提问来源于stack exchange,提问作者Maksym Ivanov
相关产品推荐
相关产品推荐

