|
|
昨天给网站升级了https,今天发现打开公司介绍页面百度地图不显示了。错误提示:: `2 F- k E( k! d- T1 x9 H7 I
$ v) u: m+ @! c% Y0 q- _
; s% D; B& |, m1 ~$ [3 k! r- Mixed Content: The page at ‘https://www.******.com/public/admin/index/index.html
" n. X$ s2 H& r! x - ’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=1.4
t5 e6 T Y, w - ‘. This request has been blocked; the content must be served over HTTPS.( T- U% M) A* c( x) M
- VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.
复制代码
7 _9 g: i. U4 I& M* }8 I6 r1 i" [/ B0 N# S- y# ]& q l7 A
这个问题是因为在百度的JavaScript API V2.0版本才支持https,而原来的是不支持的。# Y8 P. b3 m0 d1 c5 t; X/ N
% D. r' a8 q( u" n4 E' U配置方法:7 h* a9 Y1 }4 b. n1 W5 j
* r3 n; ?% `3 R1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):( H0 e! C% t; J$ Q, s6 r
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;" T4 x- {6 q( H3 v7 v8 G
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:) V4 c! m. Q, W' Y% n, e; I z4 b
https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=12 o+ C; x: G) u' c, a' \
3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;2 h9 z3 X) Z8 N0 a) o
3 T; u" \7 p: N: Z( [1 f3 U
/ T. B6 w& p/ f2 K5 y5 k( ^/ R% H非常欢快的用第一种方法复制替换之后,发现在使用百度地图API的时候,运行在浏览器上出现:/ K4 i! O* {$ N# u, W8 x# m* k
+ B' m9 \0 `% B- z0 I) c0 f
百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:http://lbsyun.baidu.com/apiconsole/key#。
% {# C/ I6 v9 U0 V# ^0 [错误提示,检查之后发现需要一个百度地图的AK密钥,这个密钥目前是免费申请的,网址就是提示的这个网址:http://lbsyun.baidu.com/apiconsole/key#/ n/ m5 N7 f5 _ c2 A2 D/ ~
9 Y7 ?; @+ v" o1 N, f9 d- ^
登陆之后,第一个选项就是创建AK的。
7 z7 ?* C p5 [9 C点击创建应用
" Z+ }" `8 b* U$ L0 ^, h
% }6 {& @/ s( {- |2 ]
4 @* P' P6 v6 E; v8 a& q+ d! M应用名称 自己填一个
3 k. _; H. i; |& X7 ]) F应用类型 浏览器端 (这个一定要填浏览器端,刚开始直接默认的第一个,死活也不好使,后来才发现是选错了……)
8 K w4 X) w" L* m r; O+ i- v6 H7 \启用服务 默认全选就可以) ?0 T5 ^& J- z, y5 X: L' s
Referer白名单 按照说明要求填写,最好是你用的哪个网站调用,就写对应的域名规则,尽量不要全放开。
+ w0 f, p6 h7 K6 k. {( M4 x. t然后把密钥替换到https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1中你的密钥的位置,然后替换掉原来的JavaScript API 即可。. X( r2 s, w9 }9 _6 k9 w9 G
0 U1 F/ e8 C2 ]7 [( S9 b. k刷新页面,地图又回来了。; `1 i/ _" |2 ^0 e% ^
! [/ |( _ M8 W* C3 ^5 H
" |/ B$ v1 W. Q3 b |
|