1、https的頁面內嵌入http頁面報錯
在HTTPS的頁面上嵌入http的頁面時,瀏覽器會直接報錯。比如在HTTPS頁面上用 iframe 直接嵌入一個 http 頁面,比如我們可以在百度上直接嵌入我們本地服務器的一些頁面,瀏覽器將會直接報錯:
瀏覽器報錯提示:xxxx has been blocked。原因是:瀏覽器的安全策略,在https的請求里會將http的訪問block掉。
2、解決方法
協議一樣時訪問就不會出錯。
在 HTTPS 請求里訪問 HTTPS 資源不會報錯, 所以如果需要內嵌入 HTTPS 的頁面同時支持 HTTPS 和 HTTP 兩種方式訪問的話,只需將 HTTP 請求改為 HTTPS 即可。或者是引用的時候直接把引用資源的URL里的協議頭(即https:// 或 htp://)去掉,瀏覽器會自動根據當前是HTTPS還是HTTP來給資源URL補上協議頭的,就可以達到無縫切換。
2.1、臨時解決方法
瀏覽器將你需要訪問的 HTTPS 和 HTTP 頁面設置為安全。
比如在Chrome瀏覽器中:設置 - 隱私設置和安全性 - 網站設置 - 不安全問題 - 允許,在允許里面將你的 HTTPS 頁面域名和 HTTP 頁面的域名都添加進去,請注意,必須兩個都添加進去,否則沒效果。示例:
設置完之后,在這兩個域名之間就可以實現頁面互嵌了。
缺點是每個瀏覽器都必須單獨設置,所以只能是臨時方案。
參考:https://www.cnblogs.com/nimon-hugo/p/13534838.html