|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:" H7 O/ c$ s5 [8 ?; g5 r7 K! v+ R
7 ?* D# Z) k! \6 K( [. G
% _% l; n% h/ \1 { V! B- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html/ N! D9 s7 v& y/ E4 B
- ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4: W2 K8 A# O5 R2 C6 |" x2 M
- ‘. This request has been blocked; the content must be served over HTTPS.
0 {1 D; S' ]& ]. x: [ - VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
: \! W- x3 K1 ~+ a5 v6 R& h( [( N4 ~7 b' J. k H
这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。
! R+ T. k E3 c8 `! Y: u1 B2 ] J R% k3 W
配置方法:3 y2 h" h M$ R
+ f% o7 M0 s/ [* ]( o
1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):
" S* C! i( |8 G. v$ Phttps://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;
* U- C$ e: I8 B8 A5 l2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:7 h" f7 \, S9 {& t" F9 M
https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1' q( }6 M$ {9 ~
3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;3 k& x" O9 K& {+ b
+ ^$ Z( H2 x; r3 K8 l$ X2 @, K* ^2 |, y8 W1 T& l V) P- h
非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:2 K: }: v7 D& P$ ?. f) H
/ J& J6 G4 q9 Z+ P+ q) j百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
! L8 H2 @7 Y) ?0 ?错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#* ~% d% |4 O% o3 f8 B
. y6 I# u1 u0 ^7 u4 y登陆之后,第一个选项就是创建AK的。
z* C% h( W- P! z点击创建应用
* I2 m9 w! s5 W5 h7 K3 J' F k: @$ |2 v# g
- T2 x4 `) G4 R
应用名称 自己填一个
9 _1 Y, w4 g. H0 P) S应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……); }$ p- ~6 i( c- E; Q6 X$ ~
启用服务 默认全选就可以6 K: {& P& |6 Q9 O G2 l/ M
Referer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。
1 ~5 m, `2 E( C5 l然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。* n, U# `4 N5 I; b; I) J
8 C9 F. J' Q0 W& M4 f
刷新页面,地图又回来了。$ z- ]! O1 g& |* C
* C3 Q) x( B4 K% O1 a8 | M5 ^2 n
7 j1 a) y( V% h( r! j+ f+ d |
|