SharePoint 2019本地站点如何允许指定域名嵌入iFrame?
完全可行,通过针对性配置HTTP响应头,就能只让Domain2.com嵌入Domain1.com的内容,解决"iframe refused to connect"的X-Frame-Options错误,具体配置方法如下:
方法1:通过SharePoint管理中心配置(可视化操作)
- 登录SharePoint管理中心,进入应用程序管理 > 管理Web应用程序
- 选中Domain1.com对应的Web应用,点击顶部功能区的常规设置
- 找到HTTP响应头板块:
- 如果已有X-Frame-Options头,把原有值(通常是
SAMEORIGIN或DENY)修改为ALLOW-FROM https://Domain2.com - 如果没有这个头,点击添加,输入头名称
X-Frame-Options,值填ALLOW-FROM https://Domain2.com
- 如果已有X-Frame-Options头,把原有值(通常是
- 保存设置即可
方法2:PowerShell批量配置(适合多站点场景)
打开SharePoint Management Shell,执行以下命令:
# 获取目标Web应用 $webApp = Get-SPWebApplication "https://Domain1.com" # 移除旧的X-Frame-Options配置(如果存在) $webApp.HttpHeaders.Remove("X-Frame-Options") # 添加新的允许规则 $webApp.HttpHeaders.Add("X-Frame-Options", "ALLOW-FROM https://Domain2.com") # 应用更改 $webApp.Update()
更现代的替代方案(解决ALLOW-FROM兼容性问题)
部分现代浏览器已弃用X-Frame-Options: ALLOW-FROM,推荐使用Content-Security-Policy的frame-ancestors指令,配置方式类似:
- 在HTTP响应头中添加
Content-Security-Policy,值为frame-ancestors 'self' https://Domain2.com; - 这个规则既允许Domain1.com自身嵌入内容,也仅开放给Domain2.com的iframe嵌入
额外注意点
- 如果仅需特定站点集允许嵌入,可进入对应站点集的网站设置 > HTTP响应头(需先启用相关站点功能)单独配置,无需修改整个Web应用
- 配置完成后务必清除浏览器缓存,再测试Domain2.com的iframe页面;也可以用浏览器开发者工具的网络面板,检查Domain1.com页面的响应头是否生效
内容的提问来源于stack exchange,提问作者Yaco Zaragoza
相关产品推荐
相关产品推荐

