|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:
( r+ [) J3 y$ N+ @; o ^
" f S4 c- G8 r2 \8 Q3 Q6 O% [% n5 }8 w# {/ |+ m$ q
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html$ M2 q8 W& o" w" Q3 A
- ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4
% Y6 E K/ \' W1 T: i5 W! Z - ‘. This request has been blocked; the content must be served over HTTPS.* j9 d3 g6 q* g9 d* G" A
- VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
' n r' u/ x- U: ]. |- Z0 E9 _$ w- K/ P* n: \4 ^7 a7 m
这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。
4 \" i& T% V n) Y' i
K/ C K* ? d9 p7 D- i9 c' F" _配置方法:( N$ R0 s& g" I5 F( z/ |
/ n* b$ O3 M! N9 }( w$ T1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1): E' v9 @( z% d/ _: D9 S8 a, q
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;. d; p! v) ^7 X; A( _, | K4 Y
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:
! _2 Z& G5 z8 A( J$ W/ s* l* s7 Ihttps://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
5 o) V8 }) o' Q; ^7 s# x6 p" D3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;- Z# W! F M; [8 \* x
: ~+ K: @1 h' A0 z+ B
6 O, ]' S' R9 Z非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:& Q4 s/ G" ^' i2 A+ Z9 b
$ D4 g- ~6 u- o. f0 J! A* o# y
百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
1 P w, u! S, Y' T9 r) I! ^错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#+ {8 }( `0 ~! H& ^" T
- b+ n7 `" a" W$ R L# I! @4 G
登陆之后,第一个选项就是创建AK的。$ H8 R2 W) ^ M+ E) Z5 s
点击创建应用) `) I( S3 [: K' J
: A1 f9 u0 W# b9 Q. \0 p
* Y+ a. _7 c+ S- t; g2 r! n& Y
应用名称 自己填一个. T- V, O6 ?. Q# J1 k b
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)
+ f) \' d" x( q) _启用服务 默认全选就可以
0 z& I) e; _ T# v5 Y8 \4 uReferer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。5 t+ X& f9 `2 }: o* c
然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。! ]; M4 d' i, V H( [+ v/ C$ S& M* `1 z
$ f f4 z" P6 G刷新页面,地图又回来了。
5 `2 k- X; e+ }3 _" o8 |) z" w
# v; j3 C2 h, u ~9 L6 B& V4 ^
7 m+ ~& K+ U6 Z: n |
|