百度UEditor控制元件中的map元件不支援https使用的問題解決
最近專案部署到了https環境下,使用的UEditor富文字編輯器中的map元件出現了問題,控制檯報了一堆錯誤,主要是mixed content.. ,就連百度的官網上也同樣是有這些問題,汗。。
沒有辦法,只能四處搜尋解決問題的答案。。。
第一點收穫:
https是安全傳輸協議,在這個協議下傳輸的網頁不允許包含http協議這類不安全的內容。
HTTPS頁面裡動態的引入HTTP資源,比如引入一個js檔案,會被瀏覽器直接block掉的.在HTTPS頁面裡通過AJAX的方式請求HTTP資源,也會被直接block掉的。也就是報mixed content,
解決方法:頁面的head中加入以下程式碼
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
意思是自動將http的不安全請求升級為https
第二點收穫:
上面設定完成之後頁面上的內容被自動從http協議改成了https協議,但是百度地圖的應用還是有問題,百度地圖的瓦片載入不出來,發現這些瓦片被自動改成https之後是不存在的。。也就是說這些地圖瓦片是隻部署在http下的,這可怎麼辦,難道百度地圖不支援https嗎。。這不應該啊
又一通查詢搜尋之後。。。。找到百度地圖切換https協議的方案:
將地圖的js引用稍加修改,http-->https,後面引數加上&s=1,如此就支援https了
第三點:
但是還是沒有完全解決,最後檢視我用的Ueditor中用的百度地圖的版本太低了。。v=1.1的,改成2.0的試試吧,https的相關問題終於沒有了,但是有一些百度地圖的api沒有了。。。
應該是2.0相比於1.1的api還是有些變化的吧,再檢視百度地圖的官方文件,把功能類似的api修改了一下,呼呼。。最後問題終於解決了。
主要修改內容羅列如下,以備自己總結備忘:
1、頁面的head中加入以下程式碼
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
2、修改百度地圖js引用方式:
修改前:
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true"></script>
修改後:
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=你的AK&s=1"></script>
獲取AK的方法:http://lbsyun.baidu.com/apiconsole/key
3、修改1.1到2.0升級的部分api:
1)在Ueditor包的map元件的map.html中
2)在Ueditor包的map元件的show.html中
修改js引用方式
最後,大功告成啦
--------------------- 作者:小牛1213 來源:CSDN 原文:https://blog.csdn.net/stacy06/article/details/82626363?utm_source=copy 版權宣告:本文為博主原創文章,轉載請附上博文連結!