|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:
) @) D; R. F4 w9 B& K! l/ i- d$ c( h9 t
/ n. ]4 }# X! Y0 I8 G4 Z& @
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html" ^/ |5 W. Q7 ~( U3 z! ?6 \5 m
- ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.47 j; s/ b. v$ l8 |$ B( R
- ‘. This request has been blocked; the content must be served over HTTPS.
c+ j* v, E5 w - VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
9 u; c% }% W! E4 ]( Y' H
& t/ g- V& e4 d6 E) L: V这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。% V2 d0 \* j4 a( D! F% t2 Q6 q2 M
+ @9 |# \0 O& A配置方法:
/ m$ {% W/ f% r- v
6 W9 L% [8 i- i- e+ F$ W* |: ], W; `1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):, y& B5 ]: {' r$ \
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;& E3 Q [. w E) r& a/ F. i& X
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding: Q8 D1 R4 G8 Q$ L
https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
& N& w- w! K4 A) r3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;
- P% ~" c3 s+ k3 G" D% ~3 _9 m
! ?* @$ f& P! \2 v4 M( q4 m. `! h4 w- L- Z: Y: O; a" E
非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:
3 I( }) v4 i; m' L
3 N! x R: m3 b J, t4 n百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
( T! j* Z6 Y0 X! i错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#- f" B; b5 h# c
}8 Z; c, d+ K6 m, P9 a登陆之后,第一个选项就是创建AK的。, a9 k' i: q& {# Q
点击创建应用+ l/ j- s! \* b2 _, {6 ^5 l
6 n4 u: J$ _6 c- R! T
; m2 c+ L, T) f1 T应用名称 自己填一个1 v" X: E; _ [2 }6 l: A3 C
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)6 |4 K9 M8 J- i
启用服务 默认全选就可以0 z* U8 R; K4 y
Referer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。
! U* \1 n1 f) P: ~' O然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。, G% a# p# n: _ C8 \+ D2 C
[( E, r+ G0 ]. C* @ @4 s1 H
刷新页面,地图又回来了。
, j: e( ~5 H' |! H. [3 ]: S: b% `, p* P( N
1 P# \8 P1 \! f1 E+ Y
|
|