20

下面是我的代码:

<div style="border: solid 1px #000000; margin: 5px;">
  <iframe src="http://www.w3schools.com" width="100%" height="300px" scrolling="yes"><p>Your browser does not support iframe.</p></iframe>     
</div>   

iframe 的内容在 chrome 中运行良好,但在 Firefox 中则不行。我已经禁用了附加组件,但我的 iframe 仍然是空的。谁能帮帮我吗?

4

6 回答 6

20

如果您尝试在 SSL 加密网站 (https://) 上添加此 iframe,自 Firefox 23 起它将不再起作用,因为 Mozilla 已决定阻止加密网站上的所有未加密内容(例如 http-iframes on https 网站)。您可以在自己的 Firefox 安装中更改此行为,方法是about:config在地址栏中键入并设置security.mixed_content.block_active_contentfalse. 但这对您网站上的所有其他 FF23 访问者没有帮助。

于 2013-09-12T14:37:05.263 回答
13

自 05/2018 起,由于 X-Frame-Options 标头设置为“sameorigin”,浏览器拒绝 iframe 引导。

使用 Firefox 测试页面并获得空白 iframe。这是控制台所说的:

Load denied by X-Frame-Options: https://www.w3schools.com/ does not permit cross-origin framing.

为什么?我会给 Chrome 控制台一个机会,它是这样说的:

Refused to display 'https://www.w3schools.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

基本上,X-Frame-Options 标头(不要将其与 CORS 混淆)设置为“sameorigin”,这意味着只有在嵌入相同域和相同协议时才允许浏览器显示 iframe 内容(https:// www.w3schools.com/http://www.w3schools.com/不同)。

以下是一些关于 x-frame-options 的文档: https ://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

于 2018-05-12T23:57:17.750 回答
2

我不知道它是否相关,但是当我尝试通过 c# 请求 w3schools 时,它会响应 503 禁止错误。所以他们可能会使用一些东西来阻止出现在 iframe 等上。Facebook 有类似的限制,除非你登录,否则你不能显示他们的 likebox iframe。

于 2013-08-22T07:20:13.677 回答
1

为什么还没有人提到 CORS?

来自mdn

跨域资源共享 (CORS) 是一种机制,它使用额外的 HTTP 标头让用户代理获得从与当前使用的站点不同的源(域)上的服务器访问选定资源的权限。当用户代理从与当前文档来源不同的域、协议或端口请求资源时,它会发出跨域 HTTP 请求。

跨域请求的示例:从 http://domain-a.com 提供的 HTML 页面对 http://domain-b.com/image.jpg发出src 请求 。如今,Web 上的许多页面从不同的域(例如内容交付网络 (CDN))加载资源,例如 CSS 样式表、图像和脚本。

出于安全原因,浏览器会限制从脚本中发起的跨域 HTTP 请求。例如,XMLHttpRequest 和 Fetch API 遵循同源策略。这意味着使用这些 API 的 Web 应用程序只能从加载应用程序的同一域请求 HTTP 资源,除非使用 CORS 标头。

这意味着您尝试从 iframe 进入的网站被设置为拒绝来自您的网站或其他人(如果不是全部)的请求。

于 2018-05-12T00:28:19.020 回答
1

我遇到过同样的问题。对我来说,原因是网址末尾的斜杠。

不起作用:

<iframe src="http://example.com/some/sub/folder/"></iframe>

作品:

<iframe src="http://example.com/some/sub/folder"></iframe>
于 2018-01-04T15:57:13.713 回答
0

您需要在 localhost 上有 iframe 的源文件。

Firefox 和 Chrome 不显示此 iframe:

<iframe src="https://www.yourdomain.com/form.html"></iframe>

作品:

<iframe src="/form.html"></iframe>
于 2019-01-25T22:00:30.943 回答