解决新版谷歌浏览器不能修改document.domain引起的iframe跨域问题
作者:钓赛通
发布时间:2023-12-22
点击数:
# 在谷歌浏览器的116版后,如果你是直接使用 document.domain 去设定的域名,将会产生警告。
在www.a.com域名打开s.a.com控制台报错:document.domain mutation is ignored because the surrounding agent cluster is origin-keyed.
在nginx配置即可解决问题
www.a.com nginx 增加
add_header Origin-Agent-Cluster "?0" // chorme 116版本开始对iframe跨域更加严格,要加此配置
s.a.com nginx 增加
add_header Origin-Agent-Cluster "?0";//该指令用于在HTTP请求头部中添加一个名为"Origin-Agent-Cluster"的字段,并将其值设置为"?0"。这个字段用于将请求路由到指定的集群。 #以下两行可不加(用于控制网页是否允许被嵌套在iframe) add_header X-Frame-Options 'ALLOW-FROM *.主项目域名1 *.主项目域名2 *.baidu.com';//该指令用于在HTTP响应头部中添加一个名为"X-Frame-Options"的字段,并设置其值为'ALLOW-FROM *.主项目域名1 *.主项目域名2 *.baidu.com'。这个字段用于控制网页是否允许被嵌套在iframe中,只允许指定的域名下的页面进行嵌套。 add_header Content-Security-Policy 'frame-ancestors *.主项目域名1 *.主项目域名2 *.baidu.com';//该指令用于在HTTP响应头部中添加一个名为"Content-Security-Policy"的字段,并设置其值为'frame-ancestors *.主项目域名1 *.主项目域名2 *.baidu.com'。这个字段用于限制页面中iframe的访问权限,只允许通过指定的域名进行访问
注意,上述指令中的".主项目域名1"和".主项目域名2"是假设的示例域名,实际使用时需要替换为真实的域名。