Mixed Content: The page at 'xxx' was loaded over HTTPS, but requested an insecure XMLHttpRequest end
- 报错信息
- 报错的原因
- 出现的问题
- 解决办法
报错信息
Mixed Content: The page at 'xxx' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'xxx'. This request has been blocked; the content must be served over HTTPS.
报错的原因
由于项目中后端提供的数据接口的地址是采用的 http 协议的,但是他们将项目部署到线上的时候,是放在 php服务器里面的,开启了 https 访问协议。在https中请求http接口或引入http资源都会被直接blocked(阻止),浏览器默认此行为不安全,会拦截。
出现的问题
https地址中,如果加载了http资源,浏览器将认为这是不安全的资源,将会默认阻止,这就会给你带来资源不全的问题了,
比如:图片显示不了,样式加载不了,JS加载不了。https地址中,如果加载了http资源,浏览器将认为这是不安全的资源,
将会默认阻止,这就会给你带来资源不全的问题了,比如:图片显示不了,样式加载不了,JS加载不了。
解决办法
将项目中的http 和 https 两者统一成 https 协议,也就是在所有的接口协议后面加上一个s,那么这个问题就会迎刃而解了。
通常是改变服务器的网络配置,因为我前端不好改,所以这里以后端为例。
后端开通 https 协议,需要开通 ssl 并添加证书,ssl 在服务器配置里面就可以开通,添加的证书可以在服务器运营商免费申请。