HTTPS页面发送HTTP请求----混合内容


定义:

    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://...' // 请求

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM