|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:
. v0 k4 N. t0 o, b1 }! ~% V+ O8 b$ E2 Y. X
' G- D! j1 G( w. w! @/ L
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html
2 l9 D; n C& U5 h - ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.41 g( e1 n$ l) }. W
- ‘. This request has been blocked; the content must be served over HTTPS.! \* h/ H" w! T- [, I; t7 T2 `) A
- VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
9 x `$ m6 }' y" S' U T: p' B
, n% u& g' B! F这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。
1 F: f3 d; r. q+ {$ G# S3 c- q
4 u4 H4 }: |& D% A- S1 [ J配置方法:
6 a M* x: }5 D( u+ t; |* P; n8 ]' a$ J
1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):! i# J2 [6 c, T, d
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;
6 a4 P/ Y7 a" s( q3 {2 ~% Q2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:) }; O8 x0 g" B* ]+ P
https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1' }$ N) Z; q) g. x8 _; i9 h8 i/ r
3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;* j' \3 Z1 z. j3 C, |
5 J' W: A" z3 ?; ~4 z u$ \4 h, L. q: }! J5 U9 |
非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:4 z* q( Q8 z& y# v! b, {
# Z% T: p) R0 M% @$ k5 V6 D* L" V百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
1 A; u, D# O' }$ A @错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#/ u' e& t% `& h q, Z
& x3 Q2 f1 B" o4 D4 h7 {/ p
登陆之后,第一个选项就是创建AK的。
9 t; S; N9 o& T, W# O/ d点击创建应用/ I" G/ e) W. Y1 x" |0 `( E4 H. o# A
8 w* [. q9 H6 j4 o
9 R, \- t" O* p/ B% A应用名称 自己填一个
5 D9 O1 J5 m3 f应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)
% s3 p/ S* o4 Z启用服务 默认全选就可以# E+ J/ E) g( ]/ e% P
Referer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。$ ?$ E/ z" I. `# o
然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。 D% l n5 x$ b$ `1 S: \
j3 \; r* U7 A# k+ T" s刷新页面,地图又回来了。. C9 }9 B, }% j! m8 w. U
, k9 A- {# o$ }2 [7 O# r
1 e: C$ D. p4 N4 N |
|