HTTPS 页面内的 HTTPS iframe 不起作用
HTTPS iframe inside a HTTPS page not working
我们如何正确使用嵌入在 iframe 中的 github 页面?
我在 firebase 中托管了一个网站,它通过 https 使用自定义域,例如 https://www.example.com.
这个网站使用了 React 和其他东西,但是对于一条路线(登陆页面一)我想使用托管在 github 上的静态页面,例如 https://example.github.io/page. So, to achieve this I've created an iframe inside the route https://www.example.com/page.
问题是我一直收到以下错误:
Mixed Content: The page at 'https://www.example.com/page' was loaded
over HTTPS, but requested an insecure resource
'http://example.github.io/page/'. This request has been blocked; the
content must be served over 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 中添加 不需要的文本 。
我们能解决这个问题吗?
如果您仔细检查您的 HTML 代码和错误消息,您会注意到 URL 中除了协议部分之外的细微差别:
https://example.github.io/page
- 在 iframe
src
标签中
http://example.github.io/page/
- 在错误信息中
原因可能是 URL https://example.github.io/page returns a redirect to the "canonical" version with the trailing slash (/page/
), but a redirect URL must be a full URL, and the server for some reason isn't including the actual protocol in the redirect URL, always using http://
instead. That could be due to configuration or coding at the server side (see also github issue #289).
作为解决方法,使用不会触发规范化重定向的 URL,即 https://example.github.io/page/
.
我们如何正确使用嵌入在 iframe 中的 github 页面?
我在 firebase 中托管了一个网站,它通过 https 使用自定义域,例如 https://www.example.com.
这个网站使用了 React 和其他东西,但是对于一条路线(登陆页面一)我想使用托管在 github 上的静态页面,例如 https://example.github.io/page. So, to achieve this I've created an iframe inside the route https://www.example.com/page.
问题是我一直收到以下错误:
Mixed Content: The page at 'https://www.example.com/page' was loaded over HTTPS, but requested an insecure resource 'http://example.github.io/page/'. This request has been blocked; the content must be served over 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 中添加 不需要的文本 。
我们能解决这个问题吗?
如果您仔细检查您的 HTML 代码和错误消息,您会注意到 URL 中除了协议部分之外的细微差别:
https://example.github.io/page
- 在iframe
src
标签中http://example.github.io/page/
- 在错误信息中
原因可能是 URL https://example.github.io/page returns a redirect to the "canonical" version with the trailing slash (/page/
), but a redirect URL must be a full URL, and the server for some reason isn't including the actual protocol in the redirect URL, always using http://
instead. That could be due to configuration or coding at the server side (see also github issue #289).
作为解决方法,使用不会触发规范化重定向的 URL,即 https://example.github.io/page/
.