iframe Mixed Content

RojerChen.2016.07.24

目前我在負責維護的系統有發現到一個問題,就是網站有嵌入 iframe ,以前走 HTTP 都好好的,但是當要改走 HTTPS 的時候,一些有嵌入 iframe 的網站就會跳出這樣的錯誤訊息,導致遷入的畫面沒有辦法正常顯示。

(index):68 Mixed Content: The page at 'https://xxx was loaded over HTTPS, but requested an insecure script 'http://xxx'. This request has been blocked; the content must be served over HTTPS.



查了一下 參考來源 ,上面說可以用下面這樣的方式處理,這樣就會依照當下連線所使用的協定,來決定要使用 HTTP 或是 HTTPS,以下是 參考來源 的說明:

對於你自己的域名,使用 HTTPS 來傳輸所有內容並修正你的連結。一般而言 HTTPS 版本的內容都已經存在了,而且只需要在連結後面加上 "s" 就像這樣:將 http:// 改成 https:// 。
對於其他域名,盡可能使用該網站的 HTTPS 版本。但如果 HTTPS 不能用的話,你也可以試著跟域名擁有者聯絡並詢問他們是否可以使用 HTTPS 來傳輸內容。
如果你在你網站的 SSL 與非 SSL 版本分享原始碼,你也可以使用傳輸協議相關連結
<script src="//example.com/script.js" type="text/javascript"></script>
如此一來,你就可以整個省去傳輸方式並使用瀏覽器顯示該網時站所用的協議。如果你的使用者正瀏覽你的網站的 HTTP 版本,則該腳本會以 http:// 來載入;如果你的使用者是瀏覽 HTTPS 版本的話,腳本就會以 https:// 載入。
※備註
由於我維護的系統本身有跑 HTTPS,自己嵌入自己的網站這樣改當然沒問題,另外因為有嵌入別的網站的內容,應為該網站也有跑 HTTPS,所以也沒問題,就看當下是跑 HTTP 或 HTTPS 來決定要如何處理。

    Blogger Comment

0 意見: