我有一小段代码,我想加载嵌入在我的一个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强加了一些约束?
提前致谢。
答案 0 :(得分:2)
阅读警告文本 - 说实话。发布商(谷歌)不允许在iframe或框架中托管其网站。 Google通过添加一个http标头“X-FRAME-OPTIONS:DENY”来做到这一点,现代浏览器将 - 并且应该 - 服从。
https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header
答案 1 :(得分:0)
不,这与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>
答案 2 :(得分:0)
许多网站都会主动阻止您在框架中加载其内容。甚至StackOverflow都否认了这一点。
有些人主动控制浏览器并强制顶层重定向到他们的主页。这样做有很多原因。
因此,如果您想将自己的内容放在iFrame中,那很好。但是,如果你想将其他人的内容放在iFrame中,那么我建议你停下来。它不再被视为礼貌行为。
答案 3 :(得分:0)
如果您尝试在iframe中加载自己网站中的网页,并且如果您正在使用ASP.NET会话,则可能会遇到阻止加载iframe的竞争条件。
对于第三方网站,正如其他人所说,ASP.NET并不关心; “这是一个浏览器的事情。”