|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:
8 m# {2 D% N! V- g: |& C) J$ g6 [
1 a7 B2 f* U3 u' h) H5 ]3 I3 n @+ M! a: S4 Z
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html
* o) [1 Z& c" f8 g; y; V - ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4! T% A- G" v7 [
- ‘. This request has been blocked; the content must be served over HTTPS.5 k4 A5 i# r- T: p6 R! \4 P
- VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码 ( d6 X1 Q7 E& c: x+ k( |/ R) ~ a
4 `3 c/ c1 H: A6 C3 H, a9 L
这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。2 r) x2 X5 |2 D3 J, R
8 Q. A7 L. F: x3 j/ i! a# x配置方法:
. A# y: O! c, U. ]* u$ |* G
5 f/ z# O5 d6 J1 B i9 O$ \1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):
; C* d& c$ Q- thttps://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;
4 ^9 a5 r( H$ N, W2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:
. U" I/ P* ^5 v* j9 f8 o$ t2 rhttps://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
! r2 u1 A, _: q ?% J+ L& n! |) L3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;
% H+ ]6 x" ]" ~4 p( N) w
( R4 w e( q4 y. A: R3 p( [6 Q* b8 o
! W( }: Y% N+ x8 m非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:
1 E2 \! ]( \6 Q) `( R% o- ] _
" w. s. u [8 q& R' ?4 ]百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。9 e: K7 n: r# Q9 W# j% Z
错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#
7 G) F* h5 Z. N5 V/ J0 e0 E5 g' E' [" `/ R7 ]8 }
登陆之后,第一个选项就是创建AK的。
4 m3 q' w/ x' C9 N点击创建应用2 J( w5 ]0 l" h9 v6 E
& j7 e' I& Y7 [; z8 O: I) C& n$ g1 y2 x) S' o7 O% b
应用名称 自己填一个
! h8 m2 x& n8 `% i. W" k应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)
' \1 u( I: p+ o! F! i: U. q启用服务 默认全选就可以
/ |2 B" A0 P, x2 T/ [# k) kReferer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。$ z, P7 Y1 I5 P: a7 ^0 t
然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。
7 K8 H1 ]! {: T, u, d4 c% Z2 {$ F* ]1 J6 W8 X5 W
刷新页面,地图又回来了。
6 l% Q d1 J! T7 W U! O( }! \; f" a- P# F& t/ Q* j% q- ~
% U) [: m1 T) O* M/ T% q( v
|
|