|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:
: C% K; o& @ r/ S3 O7 Z8 `' ]% k# K9 \) w3 c# s$ `
/ D- s# |( p9 r/ [% P# U- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html" l3 @9 i/ p+ ^, Q& F4 W
- ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4
. C& p2 D7 g" h2 Z' P% ]! v# C6 S - ‘. This request has been blocked; the content must be served over HTTPS.
/ T5 J2 t+ X r# I - VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
9 e- X4 {( V) u0 W/ V+ a) v# t' m
这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。
, g# F/ g# P5 |+ [6 v1 o l, u1 Z, o4 T8 {/ {
配置方法:5 v% A) E) T, S: ?6 Q9 ?# @
) d) _" s( W/ g& G
1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):
8 H& q, `; T8 R `& o0 T5 Ehttps://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;. H2 Y- i$ l2 M+ `' M
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding: l2 q& Z# k# c6 a
https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=11 @/ B- `* u& f* | g# f* [
3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;* S* C; `, j7 `3 H
P" H/ C% |$ R7 [* f [& W2 j. [' P
非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:6 l- S) O8 I- b3 A9 q1 K- h
. s+ k; l* p, ?1 M; V百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
5 [+ d" h' h- F错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#
2 w! \" H% o2 ~, H
. [0 V6 n% u! l登陆之后,第一个选项就是创建AK的。
( ~3 C/ Y( X$ c [- m点击创建应用
' y: g4 L2 T, \7 s
+ g8 y; c, F4 i' K( f+ N, [: r$ ~/ _- h* _. j @4 i
应用名称 自己填一个: v, G5 | b2 T7 _3 y# I0 A
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)
6 H1 N9 n9 F$ h" [- t8 K启用服务 默认全选就可以
4 y- C$ h# b" N$ JReferer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。5 R" k% c# B5 w- Z5 h; G. Q
然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。
1 N s( H8 N) \% y- R3 c
% _& V; ?! l8 ~+ N3 V0 E刷新页面,地图又回来了。
# G7 _, S; b, g. p- w
) z- _( t' d0 ~$ Q' f1 j; }
4 f% m' P0 S" o7 i! b! ]* v0 X2 Q3 R |
|