|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:
% u3 w ] \# U" O1 `: a) ?/ m5 M
' t U& I3 A/ H! `' L6 Z, ]4 J- q5 H' o( Z
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html
$ G: J4 k) S5 V" h& A6 e3 H |# J - ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4' ?) J" ~# ]( v6 O7 P8 `
- ‘. This request has been blocked; the content must be served over HTTPS.6 ^' |. v1 B- D1 x& b
- VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
- S1 j- Y5 T8 x; |! X
' e# |) @+ l, y这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。: ?0 t# j! t- A+ o% R9 x/ Q
, T, p6 _; x/ ]9 _* O _( S配置方法:
1 \% O7 N2 z0 H6 q/ c$ \, O( a# y7 e
1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):* S& Y2 P$ G3 l5 u) j1 w6 K% o
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;
. h7 c4 ^+ d2 _9 D% u2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:, h4 K) N2 @- V! R8 l
https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
' Y& z4 n7 y6 A: M& U8 z1 s3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;
^% q4 w* s3 T1 E$ ?2 b
2 i- l3 D6 F7 X% _2 G4 D- L5 c6 r A- n7 c$ N
非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:1 f4 k. ?* C. a. j: {
. y" o- V# f8 I4 I M. G' b百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
5 G/ a% [; z/ z" }; `错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#( p; v% i0 D$ _0 I
) J# O2 j q& a8 ]& _0 K m# r
登陆之后,第一个选项就是创建AK的。
, Y6 W: T5 K7 ~点击创建应用1 s% `# M8 i! C
$ _$ @5 c" p9 `: V8 w# j) u
, G9 k7 v3 T6 m; d8 L/ E n" r应用名称 自己填一个5 ^5 r; O7 T: D% \$ s
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)
4 v9 [# j( B3 x+ \6 g8 C) b7 V启用服务 默认全选就可以& k1 d+ Q) p4 \+ [- M
Referer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。
5 ], j. X; n: i* g8 N然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。$ y* {" }) O* }; W, v* f5 n
4 o4 E: s# g4 L4 f, w# ?
刷新页面,地图又回来了。
( {! j: P" T2 y) _% p6 u+ m7 s" m3 o, j. g
, I( P+ k, c. {2 C. p2 |! p$ Z/ u |
|