|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:( c2 `' \ I$ y9 D# f. t: w
3 p) e3 l+ w; m2 ~4 [0 T. C6 C- Y0 f
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html: A: v4 D `" Y
- ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4. s0 l4 d1 D6 {) Q
- ‘. This request has been blocked; the content must be served over HTTPS.
6 a8 a( a" k4 v- _. M: L - VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码 & `% z8 t8 @$ U1 t2 U8 {
/ C% R& m( o4 k+ E, U7 D这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。& \8 ], Q" L& J G8 U
: b* W u! S9 f6 i) K* o
配置方法:
6 r' m3 S4 O, ~1 n9 E# w
% K$ c8 ^; d8 e' q1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):/ M& @1 T% ]* _
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;9 K" d' ?' a: m& r) P! R
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:( N8 H4 V8 a& H) t' U
https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1! c+ _2 d% J9 s, _
3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;% O2 u# B, K. z# o- S% @% `
: B! B: Z/ O" Q0 |% |5 o/ e( e* l4 r" M
非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:1 d. ^3 J3 U7 m( k* m8 G& i/ V
: P P" h& z5 o8 f4 F3 T- k百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
; j* l- `* y* _! r错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#
8 M/ D: i" n8 }+ r! L" m' r9 R+ V9 i* {) |
登陆之后,第一个选项就是创建AK的。
4 p0 G1 V$ v4 Q0 {) T点击创建应用3 \9 @0 F5 N4 F8 x
$ o6 {5 l/ L" K& \- T
7 L! o1 y: o1 `0 U7 j4 j* W应用名称 自己填一个2 r% q% L9 Y- @4 _5 _3 b4 p
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)4 D3 R& Z4 w* Q& i, K+ V) _5 _
启用服务 默认全选就可以2 z9 M+ c2 p; }. e4 o
Referer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。
! o5 A, v* B" h/ y, b9 G$ B. n然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。5 q/ Q8 c6 }; X! y
) D4 b) S* U- m$ ~
刷新页面,地图又回来了。. O7 f Y9 k8 @5 {0 r
& z1 W* Z: U6 E& V4 Y- l& i/ ?* g5 l0 L1 i* i
|
|