|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:4 t; T# u" T6 l
# h! m" k( L% M) m5 W& G9 Y& O) F# z4 \
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html* A, t" H* ^ |6 {
- ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4
- |( [; ?/ x( ~8 z/ C p - ‘. This request has been blocked; the content must be served over HTTPS.
+ s# t j6 o- t& |9 g - VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码 ( v1 Q+ F* G! O; y
C; b; A# \. x! x9 Q" V7 a5 v' I这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。0 S; [5 e* [6 M$ r
) u, [6 K& C5 O2 c T9 x配置方法:
/ K$ d5 ], ^/ u' y- p+ |, A0 h3 ^* @8 [
1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):
' I. k1 U0 b/ @" s9 {. {https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;
1 f, C& _0 e. X2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:
. g Z) T, c5 J2 Mhttps://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
* n: r5 L8 f+ M3 v' h1 k, B3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;7 t7 H: J3 e- o; T5 J" n
; o. V0 n3 W; D4 B4 W7 G2 [( O* h$ W8 q
非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:
( Z& |; v! I4 I$ [& a; |6 r/ L+ @; [2 X
百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。# x3 m# V! ~$ N! `6 ^$ z4 c: ^
错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#
! X1 f5 m3 {( ?
- D- A# v* C% U' g- u5 i" Q+ U0 ?登陆之后,第一个选项就是创建AK的。
$ |% Z7 t+ V, p4 B! {2 ^& v点击创建应用
% @ g% S% B% M) l! }6 M1 n
; K4 \" I( }4 X( O+ ?$ c0 N
|( E+ `" O" n0 [* C) }9 n( s! { {应用名称 自己填一个
, a8 f$ a* l5 i& I应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)5 {( x, T8 D. n
启用服务 默认全选就可以
8 C! I9 X3 x2 B8 q+ ZReferer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。2 c# C. ~" t. ~# W- u: ^4 [8 Y I6 _
然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。7 T0 e2 x F# c' R/ D* S
! a, p9 \, S- n/ |" C刷新页面,地图又回来了。' A; n: w8 X9 E( b* j
1 p1 F+ L. p D/ i
- |: C) _* p- X; N" m
|
|