请问百度地图 API 到底要怎样弄才支持 https ?

2017-02-02 12:54:08 +08:00
 gdtv
我的页面是 https 的,要加载百度地图.
听说在百度地图 api 网址后加参数 s=1 就可以

//api.map.baidu.com/api?v=1.5&ak=KEY&s=1

但还是不行:

Mixed Content: The page at 'https://www.xxxxxxxxx.com/map.php' was loaded over HTTPS, but requested an insecure script 'http://api.map.baidu.com/getmodules?v=1.5&mod=map,scommon,mapclick,oppc,tile,navictrl,control'. This request has been blocked; the content must be served over HTTPS.

查看百度 js 的代码,发现还是加载了一些 http 的元素
10001 次点击
所在节点    问与答
6 条回复
ZE3kr
2017-02-02 13:05:01 +08:00
Google 地图有个中国可以访问的版本,你可以试试
hitigon
2017-02-02 13:07:10 +08:00
要企业认证
chromee
2017-02-02 13:22:38 +08:00
详见
http://lbsyun.baidu.com/index.php?title=jspopular/guide/introduction#Https_.E8.AF.B4.E6.98.8E
摘录如下:
注意:仅 JavaScript API V2.0 版本支持 https ,其他 JavaScript API 版本均不支持。使用 https 服务,请先检查您的版本。
配置
1. 如果使用 JavaScript API ,需要加一个特殊字段 (s=1):
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1
kuretru
2017-02-02 13:26:17 +08:00
var marker = new BMap.Marker(point,{icon:new BMap.Icon("https://api.map.baidu.com/lbsapi/createmap/images/icon.png",new BMap.Size(20,25),{
中间还有一段要改
gdtv
2017-02-02 22:35:00 +08:00
@kuretru 是我写错代码了,并不需要像你这样改,只要加参数 s=1 ,然后直接用 var marker = new BMap.Marker(point)就可以了 , 见 3 楼的答案
ansquest
2017-09-01 09:54:19 +08:00
如果百度地图已经配置成 3L 所描述的样式,依然出现 Mixed Content
可以在检查一下 baidu map 的 style
map.setMapStyle({
style: ‘ normal ’
});
如果 map style 是 normal 即使配置成 2.0,申请认证,设置字段(s=1) 依然会出现 Mixed Content
建议切换 googlelite 样式 或者其他样式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/337715

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX