4.报错场景及解决:chrome浏览器下因安全机制发现URL降级调用导致显示不完整(即https网页中引入了http资源)
问题:将由http访问的网站通过nginx实现https访问后,IE下没问题,但部分页面在chrome浏览器下因安全机制发现URL降级调用导致显示不完整,凡是页面中用chrome的F12-network-Status为(blocked:mixed-content)的调用的地方,都有这个问题,有些css无法调用)
原因:HTTPS页面里动态的引入HTTP资源,比如引入一个js文件,会被直接block掉的.在HTTPS页面里通过AJAX的方式请求HTTP资源,也会被直接block掉的。
解决:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
方法一:可以在相应的页面的<head>里加上这句代码,意思是自动将http的不安全请求升级为https。
方法二:针对页面中通过请求http的网页地址来引用外部资源的情况,可以将外部资源下载下来放到本地,然后在页面中通过相对路径来引用放在本地的外部资源。这样也避免了一部分https页面混杂http请求的情况。