4種https頁面加載http資源報(bào)錯(cuò)時(shí)的解決方案

來源 | https://www.fly63.com
module.exports = Config[Fix];Mixed Content: The page at 'https://www.fly63.com/***/' was loaded over HTTPS,but requested an insecure image 'http://www.fly63.co/***/img.jpg'.This content should also be served over HTTPS.
這是由于HTTPS 是 HTTP over Secure Socket Layer,以安全為目標(biāo)的 HTTP 通道,所以在 HTTPS 承載的頁面上不允許出現(xiàn) http 請求,一旦出現(xiàn)就是提示或報(bào)錯(cuò)。
下面總匯幾種解決方案,供大家參考。
方法1:服務(wù)端設(shè)置header
好在 W3C 工作組考慮到了我們升級 HTTPS 的艱難,在 2015 年 4 月份就出了一個(gè) Upgrade Insecure Requests 的草案,他的作用就是讓瀏覽器自動(dòng)升級請求。
在我們服務(wù)器的響應(yīng)頭中加入:(當(dāng)然如果操作不了服務(wù)器,下面還會(huì)介紹另一種解決辦法)。
header("Content-Security-Policy: upgrade-insecure-requests");
方法2:頁面設(shè)置meta頭
在頁面中加入 meta 頭:(我使用這個(gè)方法)
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
如果頁面比較多,需要統(tǒng)一改變的話,我們可以將這條語句添加到全局JS文件里,全局調(diào)用。
方法三:刪除鏈接中的http:
推薦方法,不指定具體協(xié)議,使用資源協(xié)議自適配,比如,當(dāng)前為https頁面,那么就是https資源,如果是http頁面,那么就是http資源。具體方法超簡單:
<script src='//cdn.bootcss.com/jquery/3.3.1/jquery.min.js'></script>
方式四:
最笨的方法,直接復(fù)制原有代碼,寫成兩套代碼,一套為http使用,一套為https使用,http和https各自指向各自服務(wù)。
學(xué)習(xí)更多技能
請點(diǎn)擊下方公眾號
![]()

評論
圖片
表情
