【问题标题】:iframe not loading content in ASP.NET applicationiframe 未在 ASP.NET 应用程序中加载内容
【发布时间】:2012-02-15 09:56:33
【问题描述】:

我有一小段代码,我想加载嵌入在我的一个 aspx 页面中的另一个网站的一部分:

<tr>
   <td style="padding-left:15px;">
      <iframe src="http://www.google.com/" width="210" height="100" /></iframe>
   </td>
</tr>

当我在 IE 中查看页面时,框架有以下警告文本:

To help protect the security of information you enter into this website, the publisher of this content does not allow it to be displayed in a frame.

但是,google.com 或任何其他外部页面在任何情况下都不会加载。 iframe 是一个非常简单的标签...是明显缺失的东西,还是 ASP.NET 施加了一些约束?

提前致谢。

【问题讨论】:

    标签: asp.net html


    【解决方案1】:

    阅读警告文本 - 它说的是实话。发布商 (google) 不允许在 iframe 或框架中托管他们的网站。谷歌通过添加现代浏览器将 - 并且应该 - 遵守的 http 标头“X-FRAME-OPTIONS:DENY”来做到这一点。

    https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header

    【讨论】:

    • 好的,这是有道理的。起初我以为“发布者”指的是我和我的网站,因此我怀疑是 ASP.NET 设置。非常感谢您解决这个问题。
    【解决方案2】:

    不,这与 ASP.NET 无关,都是客户端问题。 我刚刚创建了一个纯 HTML 页面,在 IE 中遇到了同样的错误,但在 FireFox 中运行良好

       <htmL>
       Test page
       <table>
       <tr>
         <td style="padding-left:15px;">
           <iframe src="http://www.google.com/" width="210" height="100" /></iframe>
        </td>
      </tr>
      </table>
      </htmL>
    

    【讨论】:

      【解决方案3】:

      许多网站都积极阻止您将其内容加载到框架中。甚至 StackOverflow 也否认了这一点。

      有些人主动控制浏览器并强制顶层重定向到他们的主页。这样做的原因有很多。

      所以,如果您想将 您自己的内容 放入 iFrame 中,那很好。但是,如果您想将 其他人的内容 放在 iFrame 中,那么我建议您停止。这不再被视为礼貌行为。

      【讨论】:

      • 好的,谢谢。在生产中,我将从一个我想保持独立的静态项目链接到我自己的 Web 应用程序(尚未构建,还没有域名)。具有讽刺意味的是,我测试的两个网站是 google 和 SO。
      【解决方案4】:

      如果您尝试在 iframe 中从您自己的网站加载页面,并且您使用的是 ASP.NET 会话,则可能会遇到阻止该 iframe 加载的竞争条件。

      但是,正如其他人所说,对于第三方网站,ASP.NET 并不关心; “这是浏览器的事情”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多