https的頁面內嵌入http頁面報錯的問題


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM