定義:
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://...' // 請求