有以下几个可能的原因导致iframe嵌套页面被拒绝访问:

  1. X-Frame-Options头设置:网站可能通过设置X-Frame-Options头来防止其在iframe中被嵌套。该头部可以设置为DENY或SAMEORIGIN,分别表示拒绝所有的iframe嵌套或只允许同源域名的嵌套。
  2. Content-Security-Policy头设置:网站也可以通过设置Content-Security-Policy头来限制iframe嵌套。该头部可以通过frame-ancestors指令来指定允许嵌套的域名或URL。
  3. 服务器端设置:服务器端也可以通过配置文件或代码来拒绝或允许iframe嵌套。例如,通过在web服务器的配置文件中设置X-Frame-Options头。
  4. 浏览器安全策略:有些浏览器可能会默认限制或禁止对某些网站的iframe嵌套,以保护用户的安全和隐私。

目前我遇到的应该属于第一种,提示:

报错:Refused to display ‘http://xxxxxxx/’ in a frame because it set
‘X-Frame-Options’ to ‘deny’.

X-Frame-Options可用于指示是否应该允许浏览器呈现在一个页面

X-Frame-Options: HTTP 响应头是用来给浏览器 指示允许一个页面 可否在iframe标签,embed标签 或者 标签中展现的标记,

<head> 
    <meta http-equiv="X-Frame-Options" content="SAMEORIGIN / DENY "> 
</head> 

站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 点击劫持 攻击。

X-Frame-Options 有三个属性值:

1.deny
浏览器拒绝当前页面加载任何Frame页面。即该页面不允许在frame中展示,即便是在相同域名的页面中嵌套也不允许。
2.sameorigin
iframe页面的地址只能为同源域名下的页面。即表示该页面可以在相同域名页面的frame中展示。

3.allow-from uri
为允许frame加载的页面地址。即表示该页面可以在指定来源的frame中展示。

解决办法:
使用nginx服务器进行反向代理,来解决跨域问题

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐