|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:
# n* D8 N5 P" c5 d% D# b7 j- W7 |& B1 A
# I0 H* w5 y+ a5 H4 L3 s
- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html
$ j, P( C c# U9 b: c - ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4
/ ?6 D* b: j! j0 W( e$ F - ‘. This request has been blocked; the content must be served over HTTPS.
8 s" {& ~( V* p4 K - VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
6 J7 T% N7 f9 h& \: N
7 e @7 U+ u6 w' r. ?这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。. R# `. N7 U! \, k% y# [
, B1 a) M+ D& k) }2 e, {4 H配置方法:+ u% l4 `. k! g$ Q2 b
- Y a2 H1 h P0 s- L/ W+ f
1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):
( ~& J3 d8 @- d3 y, m8 ^" N8 z" z S7 whttps://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;8 H6 F+ V$ _9 o& u
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:
" i. u7 p9 ~9 o) q5 bhttps://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1* F; i2 S) s- A% _+ P: H' U& s
3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;
% h* G& e2 O! [; ~% R# }; B2 k& ^( c8 v$ |: q
+ e% f* N' Q1 F非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:
2 o# U2 Z2 j: J3 C: {: U l) ]% t9 Z* I! o; b6 e7 i# a& ^4 r
百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
6 @) Z0 r. U$ Q0 }6 c8 p错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#! ?$ L1 g4 m8 h4 O
2 l8 U6 d5 n! |/ R& D+ {8 y# J登陆之后,第一个选项就是创建AK的。# I- Y- W, U$ f1 \) A0 w: e$ P# ]
点击创建应用
. |9 A2 n' |( v P5 a, I
+ M( v' M- `% _4 g% w% w! b7 U, f/ ^ u) b1 {- D7 s
应用名称 自己填一个2 u! h/ x2 G1 {- p
应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)
3 I. E/ H$ C: U: {启用服务 默认全选就可以' N5 Z0 P: ^! J* K4 C
Referer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。. N7 G$ {9 f9 Q$ i% P" f8 w
然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。2 ]: n2 |9 U# p0 S
) D- |; s9 |! c3 i
刷新页面,地图又回来了。
3 D5 Y( A$ T' h% v7 T
+ j8 q' H+ v$ g) I9 ?* \" p1 H5 d% e( J/ ^9 U! O4 j8 z1 {: \3 D% a- @
|
|