Chrome浏览器https网站里http资源加载报错

今天遇到这么一个问题,我们的网站是https的,Chrome浏览器在加载一个http的图片时报错:

仔细查看报错的图片路径,发现图片路径的http协议被Chrome浏览器强制改成了https。

原因分析:

https是严格加密传输,不允许调用http普通协议数据,其中包括:JS、CSS、图片等任何http协议普通资源的存在。在https地址中,如果加载了http资源,浏览器将认为这是不安全的资源,将会默认阻止。

在 https 网站加载 http 协议的图片时,Chrome浏览器会强制把图片路径的 http 改成 https,然后进行资源请求,所以图片就加载报错了。

谷歌官方也发了通告:

https://security.googleblog.com/2019/10/no-more-mixed-messages-about-https_3.html

Chrome浏览器https网站里http资源加载报错_第1张图片

https网页中加载的http资源被称之为 Mixed Content(混合内容),不同浏览器对 Mixed Content 有不一样的处理规则。经测试,只有Chrome浏览器才会把http图片强制转换成https,搜狗、360极速浏览器不会强制转换,可以正常的加载图片。

解决办法

办法1:更改Chrome对网站不安全内容处理行为为允许

Chrome浏览器https网站里http资源加载报错_第2张图片

 把“不安全内容”设置为“允许”,然后刷新页面就可以了。这个设置只针对具体某个网站有效。

Chrome浏览器https网站里http资源加载报错_第3张图片

方法2:把http图片存储到支持https的服务器

你可能感兴趣的:(网络,chrome,前端)