HTTPS页面中的HTTPS iframe无法正常工作

时间:2018-01-07 14:57:17

标签: iframe https github-pages firebase-hosting mixed-content

我们如何才能正确使用嵌入在iframe中的github页面?

我在firebase中托管了一个网站,并且它使用自定义域而不是https,例如 https://www.example.com

这个网站使用反应和其他东西,但是对于一个路线(着陆页一个),我想使用github上托管的静态页面,例如 https://example.github.io/page 。因此,为了实现这一点,我在路线 https://www.example.com/page 中创建了一个iframe。

问题是我收到了以下错误:

  

混合内容:' https://www.example.com/page'装了   通过HTTPS,但请求不安全的资源   ' http://example.github.io/page/&#39 ;.此请求已被阻止;该   内容必须通过HTTPS提供。

奇怪的是iframe看起来正确:

<iframe title="Page" src="https://example.github.io/page">unwanted text</iframe>

它已经在使用https了,但看起来这个被忽略了。 我已尝试使用此元<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">,使用</iframe>关闭iframe,并在iframe中添加不需要的文字

我们能解决这个问题吗?

1 个答案:

答案 0 :(得分:21)

如果仔细检查HTML代码和错误消息,除了协议部分之外,您还会发现网址略有不同:

  • https://example.github.io/page - 位于iframe src标记
  • http://example.github.io/page/ - 在错误消息中

原因可能是网址https://example.github.io/page会将重定向返回给&#34;规范&#34;带有斜杠(/page/)的版本,但重定向网址必须是完整的网址,服务器出于某种原因并不包含重定向网址中的实际协议,始终使用http://代替。这可能是由于服务器端的配置或编码(另见github问题#289)。

要解决此问题,请使用不会触发规范化重定向的网址,即https://example.github.io/page/