Chrome iframe 跨域失败

发布时间 2023-09-22 16:49:13作者: 正怒月神

原因:

Chrome 稳定版禁用 document.domain setter

 

解决方案(4种):

1 使用低版本Chrome
缺点:无法保证用户浏览器版本。

 

2 浏览器设置:
浏览器地址栏输入 chrome://flags/#origin-agent-cluster-default
然后修改 Origin-keyed Agent Clusters by default 选项值为 Disabled
缺点:无法对每个客户进行修改

 

 

3 程序设置(推荐)
设置Origin-Agent-Cluster响应头

java代码:response.setHeader("Origin-Agent-Cluster", "?0");

缺点:Origin-Agent-Cluster没有纳入html标准,将来可能失效。

 

4 前端换方法(推荐)
使用 window.postMessage 或 Channel Messaging API 实现iframe跨域访问,替代修改 document.domain 的方案

缺点:能根治,但是改动较大

参考:https://juejin.cn/post/7267417057440219191