|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:0 E* d; B' l: v- ~" Z/ D
& M) [9 P9 o! Z% F6 `
7 z2 O' _& Y% a1 j& `1 ?- l7 b- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html7 f* q8 }- i( u' ^* B+ ?% W
- ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.41 |% s; v( S+ Z$ f6 A9 e1 l9 [
- ‘. This request has been blocked; the content must be served over HTTPS.
* Q/ n. N$ f2 q6 E6 I( D% q - VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
; v& j1 M/ f; S/ W0 l6 Q0 |
; P0 C4 h( I/ O) {' t这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。& a9 G- T7 I4 S9 P
: D+ T% ?+ S5 D3 {" P5 _& _9 ^+ _
配置方法:
1 x, |; _# c& S& B& F. q
2 {# c0 ]& t0 B6 d; \( Z1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):
/ \' c p6 t9 D p/ z& e: [https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;; f5 {$ w0 w" \$ t, m$ x9 J' [& o
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:
& r$ ?, k- N" b h7 a5 khttps://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=19 [; x: {; A: _9 \. d
3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;( Y$ X, l( m9 d5 |3 J$ Y0 I! Y
; x% N) A/ H( a! h+ m: a/ r$ V/ w
$ D+ Q8 I0 @2 Y. G% Q. l" f" V3 m非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:
! w/ k* ?3 P: w+ U4 q/ b( |0 V( L8 U5 N; Z2 M
百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。$ i' X% D+ L% O: ]* u0 c0 w6 o
错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#% `1 L" g* ?& ] ?
0 @7 V! u s$ Y& F {登陆之后,第一个选项就是创建AK的。" g) D. y* p$ V* r
点击创建应用
9 j( E5 t/ h; H, `5 s) K( P( a! e* a" w
j( u: B( X4 c6 i: d+ ]" I7 I应用名称 自己填一个, w3 u& j7 y) `8 w ^; o c! u
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)4 i9 i: s; o' b/ Y( W
启用服务 默认全选就可以
2 v/ {5 E+ F- Q1 nReferer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。
, }, C9 l1 \ U( g- L! v; F然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。9 |8 c6 u' ^- [7 d
1 R \- Y, r! d! W! g! F
刷新页面,地图又回来了。4 m% R5 s/ p5 I" u' T
4 P# o4 b9 O5 r/ h+ y1 S/ ?
2 S- q: U( I v$ a' d. N9 u |
|