我的vue组件正在iframe中加载外部内容
<iframe src="https://external-site" />
字符串
在本地工作正常,但是一旦我部署到我的https站点,
混合内容:位于“https://my-site”的页面已通过HTTPS加载,但请求了不安全的帧“http://external-site”。此请求已被阻止;内容必须通过HTTPS提供。
网络选项卡显示2个请求,都有状态(已取消),并且都有请求URL是HTTPS。
我的vue组件正在iframe中加载外部内容
<iframe src="https://external-site" />
字符串
在本地工作正常,但是一旦我部署到我的https站点,
混合内容:位于“https://my-site”的页面已通过HTTPS加载,但请求了不安全的帧“http://external-site”。此请求已被阻止;内容必须通过HTTPS提供。
网络选项卡显示2个请求,都有状态(已取消),并且都有请求URL是HTTPS。
1条答案
按热度按时间62o28rlo1#
对于一般情况,例如将没有尾随斜杠的URL重定向到添加了尾随斜杠的相应URL,某些服务器在重定向中硬编码了
http:
的配置-即使服务器有其他配置,随后将所有http
URL重定向到https
。例如,问题中的案例有一个URL
https://tithe.ly/give?c=1401851
(注意尾部缺少斜杠),它被重定向到http://tithe.ly/give/?c=1401851
(注意http,no-https)。所以这就是浏览器停止并报告混合内容错误的地方。在这种情况下,
http://tithe.ly/give/?c=1401851
重定向到https://tithe.ly/give/?c=1401851
(https
)。因此,解决问题的方法是将源中的请求URL更改为https://tithe.ly/give/?c=1401851
(包括尾随斜杠)。如果你直接在浏览器中打开
https://tithe.ly/give?c=1401851
(没有尾随斜杠),这个答案中描述的重定向链只是透明地发生,所以它表面上看起来像原始URL是好的。这可能会让你困惑为什么它不起作用。还有:当你在浏览器devtools中检查网络窗格时,它不会轻易地向你显示重定向链,因为如上所述,浏览器透明地遵循重定向-除非链具有非https URL,导致浏览器停止,中断链。
因此,针对这类问题的一般故障排除/调试技巧是:使用命令行HTTP客户端(如
curl
)检查请求URL,并逐步查看它报告的每个重定向,仔细查看Location
响应头值;如下所示:字符串