|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:2 L$ a) r) w2 Q2 M
! {. ^7 w" ?3 |& v8 D) t5 L0 q
# A# u: k6 g+ \0 P( q. j
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html: `" }+ a+ F5 \: ? Q7 X
- ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4
6 n" _, A8 v' u. f - ‘. This request has been blocked; the content must be served over HTTPS.3 H- L2 f# U2 {
- VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
% F: i& t; l9 J- G; k
6 b x7 o) G6 F4 ]: R/ Z这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。9 P+ D, G4 D1 M4 f" ], Q
% c- Q$ E4 \1 V! r. s6 T5 h8 E
配置方法:8 D" J) `; X' J0 ]5 | H7 ]
" M( J- s+ m2 u7 t, |$ D
1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):' K' L+ q V/ _) t! x2 \/ g* g
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;& ?( J2 E# [' f" l
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:
% i- d+ J E* b+ z# mhttps://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
8 G+ ?0 ?7 u+ L6 R' K! ^3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;
" Y$ n1 D/ R/ u2 {
) D6 I6 A* N0 f$ N
& o/ x: K, U$ y* {非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:1 t6 K8 A8 [( I9 t; L
+ ?+ [+ o: D4 S8 W+ a百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
4 _$ a4 C L) N( M3 M错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#3 }5 y& _& H% \) N% d
9 G, E( i* ~) y4 D0 A
登陆之后,第一个选项就是创建AK的。
5 y- F5 X; L) G点击创建应用. h* ^3 Q& {- f# N
* u+ `! U! u9 H( {' D! g
0 h/ ?1 L& o7 k7 x) O4 ?9 t$ y7 d
应用名称 自己填一个9 T! m& g; |2 g7 l+ O, _
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)
' P+ {; m0 q2 [, f启用服务 默认全选就可以 P( w- m) b/ b6 A' G4 m) z: G
Referer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。% f7 I9 ]: B0 ]5 L4 v# v& U5 c. l
然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。
" I# t! C# [: H2 M+ [! B" p$ R) {3 h; O9 ^* c" W7 C2 Q
刷新页面,地图又回来了。' @% e# P9 N$ q2 Y
1 w1 q6 \' g$ W8 j+ V( U
. t' E3 P e3 N6 _ |
|