查看百度地图官网,官网提供了一种方法说是,加上&s=1就可以了,但是试了好几次都不管用,有些部分的请求地址域名还是http,于是就去查看了源码。
原因:
百度地图的js中,有很多额外功能的js是代码中动态生成的,所以我们只改写密钥的链接为https也是无法控制其余js是否是https请求的。
解决:
原生代码中有控制请求地址域名的代码判断:window.HOST_TYPE的类型(0/1/2)就决定了请求的地址(http/https),因此,我们只要给window.HOST_TYPE赋值为1或者2就可以让百度地图的请求地址为https。
但是由于我们是请求线上的百度地图API JS,没办法改原生的代码,所以就新创建一个js文件,文件的内容就为window.HOST_TYPE赋值,window.HOST_TYPE = 1;将这个js的script标签放置在百度地图的script标签前(百度地图的密钥链接的域名也改为https),就解决问题了。