Mixed Content: The page at ‘’ was loaded over HTTPS, but requested an insecure element ‘’. This request was automatically upgraded to HTTPS, For more information see
在 HTTPS 网页中引入 HTTP 资源,先不谈跨域的问题。
原因是浏览器安全限制
HTTPS 不能加载 HTTP 是安全限制,不能加载比自己还低的安全级别
部分浏览器会认为是不安全的资源,将会默认阻止
部分浏览器会自动把 HTTP 协议升级为 HTTPS 协议
无论是怎样的处理方式,资源能否成功加载,变成了不确定性
作为一个有态度的开发者,肯定是不能允许的,怎么办呢?
把 HTTP 的资源,升级为 HTTPS 的资源是解决问题的根本
- 资源代理
- 购买SLL证书
如何自动转换协议与网站相适应
-
适用于已经存在 http https 混合应用中,减少修改量
在<head>
中添加<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
参考:
https://thehackernews.com/2015/04/disable-mixed-content-warning.html -
从源头杜绝
在请求资源路径上,省略掉协议头, 这种方式,会自动根据应用域名为资源添加一致的协议头;
例如:
<img src="//www.baidu.com/image/xxx.jpg" />