# mixed content the page at was loaded over https

image.png

什么时候会报上面错误:

  • HTTPS页面里动态的引入HTTP资源,比如引入一个js文件;
  • 在HTTPS页面里通过AJAX的方式请求HTTP资源,也会被直接block掉的。


解决方案:

  • 如果目标有https资源,就是用https方式能打开连接,可以直接用相对路径例如//baidu.com
  • CSP:如果不想改,而且确定连接有https资源,可以用 ​<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> ,可以在相应的页面的里加上这句代码,意思是自动将http的不安全请求升级为https。

通过 upgrade-insecure-requests 指令,页面中所有 HTTP 资源,都会首先被替换为 HTTPS 地址再发起请求;页面所有站内链接,点击后会被替换为 HTTPS 地址再跳转。

upgrade-insecure-requests 适用于网站资源已经做了https升级,但是页面链接需要改造的工作量太大,可以使用此指令快速实现目的。但是该指令只替换协议部分,因此只适用于转换后的https资源已经存在的情况。


参考链接: