百度地图 API 支持 HTTPS

本贴最后更新于 827 天前,其中的信息可能已经沧海桑田

事情缘由

前段时间项目部署生产环境,由于测试环境一直使用 http 协议进行部署访问,生产环境申请网络权限时 https 协议,由于 https 协议中无法直接调用 http 接口,所有请求都需要使用 https 协议,这其中也用到了百度地图 api,在查看了官方 api 文档后发现直接使用 https 是支持的,就直接使用,后面发现直接使用会影响关键词查询精度问题,比如搜索工商银行就搜索不到。

错误提示

Mixed Content: The page at ‘localhost:8080
’ was loaded over HTTPS, but requested an insecure script ‘http://api.map.baidu.com/api?v=3.0&ak=
‘. This request has been blocked; the content must be served over HTTPS.
VM255 addshopview.html:381 Uncaught ReferenceError: BMap is not defined.

解决方案

百度发现有些人是遇到了这样的问题的,特地记录一下

正常 https 首先是获取 getscript.js 文件,这个文件里面有一个 window 变量 HOST_TYPE,默认是 0,为 0 时走的 http,需要在引入 getscript.js 前让他变为非 0 值即可,这样才能走 https,具体可以查看 getscript.js 文件。

20201119183824976.png

修改引入地址

<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=&s=1"></script>
    
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 248 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6884 引用 • 31033 回帖 • 232 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...