|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:5 u" c5 R8 n0 v9 c! _1 W# U
T6 o/ T0 M0 V2 Q0 {5 e; f! V: b' h! L- s$ m- V7 R/ O
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html
3 c: ]8 [7 Q% @7 z! ?* c5 f - ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4' e! y* L# c( q! ?
- ‘. This request has been blocked; the content must be served over HTTPS.
2 v- O7 _8 \- L; k - VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码 & s% ~' E7 I, V R8 \) V3 z2 M
& w2 I+ {/ s d
这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。! _& f7 b, L) k% o) w
' h* J: q1 l. w5 _
配置方法:
6 @+ J& a% |1 n6 K( g) M0 z# \3 r: Q
- o, M, ?3 m/ j1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):
! B i1 N1 r; e& U, R# fhttps://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;
2 S8 K8 U1 n4 \# `1 ]. o4 r2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:- p( ^ w! A- S7 x
https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1& F2 s4 X' h# i" b) z! j2 z
3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;
% R( n* L2 Q9 u5 `' `6 X6 B) y# E! W3 O+ I7 c/ `( z6 w
6 ?. W1 g" r5 I* [8 D+ h0 Q
非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:1 d e+ G& u3 N
, |! {" |. q$ o6 r: @9 z! u百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
3 M4 b" v: L. L8 v% q& O( [错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#3 W8 ~; h6 ]( ^/ j& V4 f
^/ z0 A$ m( W$ g. z* g登陆之后,第一个选项就是创建AK的。0 m% |3 H: e6 d3 W! T q) k
点击创建应用
: _* l8 l5 N1 a. P3 I$ c- g& H0 p# C& b% n$ t3 i4 G
' B" f1 M0 ~% H6 p0 Z
应用名称 自己填一个0 S- H( k; ~8 x! I9 c
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)( L/ p% e5 S( `8 H+ g* }, Y
启用服务 默认全选就可以
" |! |; j8 w0 q# I# L' tReferer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。
' U* O6 _" g; O* z7 V. W' d然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。
, T2 f0 ^2 N T1 [6 a( A3 }; i* ^& m' j1 y9 ?
刷新页面,地图又回来了。# N b. ?4 V9 {
8 D2 ], A' o* p$ {& h+ @' f* u
4 X# T. E0 H) q' r |
|