|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:
4 k- m! r+ ]0 S2 F, p1 d( a. E) r+ M: S5 {9 m* S
% r2 _. d0 v3 a0 x0 J4 [/ }4 U- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html8 D4 T4 Q8 Z+ \+ l/ s/ p- U
- ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4/ }" `" e& @1 J, g7 h. e7 r( a8 \+ {
- ‘. This request has been blocked; the content must be served over HTTPS.( ~4 y# S2 f: B( m1 N/ Q
- VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
M7 p9 c* S! y
0 R* {7 [5 H5 Y7 T这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。4 e) M; R* S) D1 S& g- N! x
0 h8 y3 t P9 F; S2 Z0 B配置方法:+ L( ` t! ?% ~, Z
" h) A/ \* R# B& L; Z7 c4 g1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):; d* F& ^# r9 l. m
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;* L' u/ D/ b P
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:
j" L, f8 F, |1 \/ c8 Shttps://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
2 k' R) X3 a- N, g3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;- R3 t- | i B5 c& q
9 C% c* B0 e- H2 p% ?5 D
8 c$ G1 W. S; u0 X0 A非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:
% P2 v$ W4 [3 c2 o7 E4 O. @0 N7 E
百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。* h0 I/ J; x1 b
错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#
8 v C% {1 m( B4 e: k/ c, v/ h& s& {9 U, u/ J
登陆之后,第一个选项就是创建AK的。% p1 B/ d- F g0 b, f) h
点击创建应用
5 x7 `/ G, K$ o
6 i# e1 Z9 c. C: E6 X+ U. @1 f+ k& M9 M
应用名称 自己填一个2 V* l# }+ t o* V1 ^& d8 i
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)
! n) T/ ~/ ~. i4 O" u启用服务 默认全选就可以
% D, K& D9 o3 C6 `9 fReferer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。
) b. p3 R% y. j, ]6 X然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。
( v4 j/ {5 E! \7 Z0 g+ I! A* R
" d% T& c# W5 g" ]$ B+ x/ x刷新页面,地图又回来了。
: m' k% ` _) [0 L4 V4 k; N* D" b
- D: V& R+ N6 |+ R |
|