解决HTTPS混合HTTP的问题
HTTPS页面混合不安全的HTTP请求
在启用HTTPS
页面时,如果出现HTTP
请求,那么浏览器会报错,如下:
1 | Mixed Content: The page at ‘https://www.taobao.com/‘ was loaded over HTTPS, but requested an insecure image ‘http://g.alicdn.com/s.gif’. This content should also be served over HTTPS. |
既浏览器会Block
掉不安全的HTTP
请求,所以解决方法有三种:
- 最简单的,将
HTTP
替换为HTTPS
。 - 去掉
URL
中的http://
或https://
,将其替换为//
,这样,浏览器就可以根据当前页面的请求方式来动态切换了。 - 如果涉及到第三方的资源,无法直接修改源代码,如腾讯公益404的
JavaScript
代码如下,document.write
函数写入两个JavaScript
文件,而这两个文件中包含了HTTP
的请求。这个时候,我们可以在<head>
中添加<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
,浏览器会在加载HTTP
资源时自动替换成HTTPS
请求。
1 | var _base = '//qzone.qq.com/gy/404/'; |