定义:
1、在一个页面加载中,HTML部分通过HTTPS加载,而其他的资源(图像、视频、样式、脚本等等)通过HTTP加载。混合了这两种加载方式的称之为混合内容。
2、混合内容分为主动混合内容和被动混合内容。
3、主动混合内容:在页面上可以直接与页面交互的内容,如下载和执行脚本、样式表、iframe等等。
4、被动混合内容:在页面上不与其它内容交互的部分,如图像、视频、音频等等。
带来的问题:
主动混合内容基本都会被主流的浏览器直接阻止,即HTTP请求还没发送就被浏览器阻拦了。
控制台有如下错误打印出来:
index.js:1 Mixed Content: The page at 'https://***' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://***'. This request has been blocked; the content must be served over HTTPS.
解决办法:
因为浏览器只会阻止主动混合内容,所以还可以通过被动混合内容来间接实现部分HTTP请求,如:img.src,缺陷是只能get请求,如下:
const img = new Image(); img.src = 'http://...' // 请求