31

在启用 HTTPS 的站点中,我添加了一个 iframe,它应该显示来自我的其他站点的内容,但它在 https 下不起作用。

<iframe  src="//myothersite.com"></iframe>

在 Firefox 最新版本中,一切正常。

在 Chrome 中,未加载 iframe,在控制台中我看到这两个错误

Mixed Content: The page at 'https://mysite' was loaded over HTTPS, but requested an insecure resource 'http://myothersite.com'. 
This request has been blocked; the content must be served over HTTPS.
Failed to load resource: net::ERR_CACHE_MISS

在 IE 内容加载不正确,我看到一条警告消息;如果我单击允许不安全内容,它会正确加载。

问题是:我怎样才能像在 Firefox 中那样做 IE 和 Chrome(加载混合内容而没有任何警报)?

注意:我没有更改任何浏览器设置。

4

6 回答 6

18

实际上 Firefox 已经开始做同样的事情:如何修复一个混合内容被阻止的网站

这说得通。如果用户使用 HTTPS 访问站点时期望获得安全体验,并且他可能不知道在不安全的连接下加载的应用程序的某些部分。这就是浏览器阻止这种不一致的原因。

您需要在 myothersite.com 上提供 HTTPS。

于 2014-12-12T13:21:44.633 回答
11

显然,最好不要混合内容来防止 MITM 攻击,但对于那些无法控制 url 的人来说,这应该可以解决问题:

将src="http://linkToUrl.com"更改为

src="//linkToUrl.com/script.js"

于 2015-07-05T03:37:21.793 回答
1

在此处输入图像描述

当我设置 url 时: <a href="http://127.0.0.1:8080/download/1.txt"></a>来自 https 请求,它报告错误:混合内容:页面'https://127.0.0.1/index.html'是通过 HTTPS 加载的,但请求了不安全的资源'http://127.0.0.1:8080/download/1.txt'

This request has been blocked; the content must be served over HTTPS.
Failed to load resource: net::ERR_CACHE_MISS

当我添加target="_blank"到 url:<a target="_blank" href="http://127.0.0.1:8080/download/1.txt">时,它起作用了!, 有用!众所周知,这target="_blank"意味着在新窗口或选项卡或新请求中打开链接的文档!

于 2015-10-20T10:48:49.410 回答
1

很抱歉,这不像其他答案那样技术性强,但是我在像这样链接 jsquery 时遇到了同样的问题,对我来说,只需更改http://https://. 它可能不起作用,但它对我有用,它可能对你有用。

于 2016-11-20T00:59:14.167 回答
0

我对 CloudFlare 有其他复杂性,它不会加载,因为文件已被缓存为 http。只需转到 CloudFlare 并在缓存选项卡中“清除所有内容”,或者打开“开发模式”。

于 2018-03-29T16:40:35.487 回答
0

问题是混合内容,浏览器不允许我们这样做。

您需要从以下位置更改网址:

http://example.com

//example.com
于 2017-07-19T10:16:02.613 回答