https页面加载http资源报错时的解决方案


前言

由于HTTPSHTTP over Secure Socket Layer,以安全为目标的HTTP通道,所以在HTTPS承载的页面上不允许出现http请求,一旦出现就是提示或报错。下面汇总几种解决方案:

方法1:服务端设置header

好在W3C工作组考虑到了我们升级HTTPS的艰难,在2015年4月份就出了一个Upgrade Insecure Requests的草案,他的作用就是让浏览器自动升级请求。在我们服务器的响应头中加入:

header("Content-Security-Policy: upgrade-insecure-requests");

方法2:页面设置meta头

在页面中加入meta头:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

如果页面比较多,需要统一改变的话,可以将这条语句添加到全局js文件里,全局调用。

方法3:删除链接中的http:

推荐方法,不指定具体协议,使用资源协议自适配,比如,当前为https页面,那么就是https资源,如果是http页面,那么就是http资源。具体方法超简单:

<script src='//blog.vipz.top/libs/jquery/jquery.min.js'></script>

方式4:分别部署应用服务

最笨的方法,直接复制原有代码,写成两套代码,一套为http使用,一套为https使用,httphttps各自指向各自服务。


文章作者: 技术潘
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 技术潘 !
  目录