如何让我的网站嵌入 iframe 中?

Tom*_*m S 6 iis iframe localhost x-frame-options

我有一个托管在外部服务器上的网站,我希望能够从本地开发环境 (localhost) 运行它(在 iframe 内)。不幸的是,当我尝试使用 iframe 加载页面时,我在框架内容中收到“此内容无法在框架中显示”消息。我该如何解决这个问题?

使用 iframe 的本地网站是经典的 asp,而托管在外部服务器上的网站是 MVC4。我仅在尝试 iframe MVC4 Web 应用程序时收到错误。当我尝试对与 MVC4 应用程序位于同一服务器(同一域)上的经典 asp 网站进行 iframe 时,我没有收到任何错误。

Reu*_*iro 2

根据Mozilla Developer Network 的说法,任一元素都支持三个选项<frame>, <iframe> or <object>

  • X 帧选项:拒绝
  • X 框架选项:SAMEORIGIN

编辑:根据 Dorner 的评论,不再支持以下选项,不应使用:

第一个和最后一个绝对不是你需要的。我尝试使用本地服务器访问另一个本地服务器:

X-Frame-Options: ALLOW-FROM http://localhost/

我得到了回应:'allow-from http://localhost/' is not a recognized directive. The header will be ignored.

它有点有效,因为标题被忽略了,但您必须评估这是否适合您的网站。在这种情况下,要求您的服务器不发送此标头会更简单。但只有当您了解项目的后果时才可以这样做。

IIS上,可以通过以下方式完成web.config

<system.webServer>
 <httpProtocol>
  <customHeaders>
    <remove name="X-Frame-Options" />
  </customHeaders>
 </httpProtocol>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

对于Apache,请参阅此主题

请记住,您的网络浏览器是否尊重 header 是由您的网络浏览器决定的。Mozilla 甚至指出:

仅当访问文档的用户使用支持 X-Frame-Options 的浏览器时,才会提供额外的安全性。

我相信 Edge 对这条规则比 Webkit 更严格。