详解在HTTPS 项目中使用百度地图 API


Posted in Javascript onApril 26, 2019

百度地图 API 产品简介

百度地图 JavaScript API 是一套由 JavaScript 语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持 PC 端和移动端基于浏览器的地图应用开发,且支持 HTML5 特性的地图开发。
百度地图 JavaScript API 支持 HTTP 和 HTTPS,免费对外开放,可直接使用。接口使用无次数限制。在使用前,您需先申请密钥(ak)才可使用。

基础使用

引用百度地图 API, 将 “您的密匙” 替换为你在百度地图申请的 AK, 即可使用。

<script
 type="text/javascript"
 src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"
></script>

更多问题

问题1. https项目
在 https 项目中通过http导入会出现以下问题:

详解在HTTPS 项目中使用百度地图 API

那么百度地图的 JavaScript API 是否支持 HTTPS 请求呢?
答案是当然的。

JavaScript API V2.0 及以上版本支持 HTTPS。
如果想使用 HTTPS 协议调用 JavaScript API,直接将脚本引用的协议修改为 HTTPS 即可。

<script
 type="text/javascript"
 src="https://api.map.baidu.com/api?v=2.0&ak=您的密钥"
></script>
<script
 type="text/javascript"
 src="https://api.map.baidu.com/api?v=3.0&ak=您的密钥"
></script>

以上是官方文档介绍的用法,在用搜索引擎查找问题解决方案时,看到前辈们的技术博客都说使用 <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script> 不能达到预期效果,必须添加参数 &s=1 才可以。
不知道是不是官方进行过优化,下面两张图是今日实测的结果:

详解在HTTPS 项目中使用百度地图 API

详解在HTTPS 项目中使用百度地图 API

可以看到添加 &s=1 后所得到的结果与没添加时是__一致的__。
问题2. 浏览器警告
在部分浏览器(如谷歌)中会产生警告如下:

详解在HTTPS 项目中使用百度地图 API

A parser-blocking, cross site (i.e. different eTLD+1) script, 
 https://api.map.baidu.com/getscript?v=3.0&ak='您的密钥'&services=&t=20190301102433,
 is invoked via document.write. 
 The network request for this script MAY be blocked by the browser in this or 
 a future page load due to poor network connectivity. 
 If blocked in this page load, it will be confirmed in a subsequent console message. 
 See https://www.chromestatus.com/feature/5718547946799104 for more details.

这段警告的大概意思是说一个阻塞性的解析器,跨站点的脚本,通过document.write调用。此脚本的网络请求可能由于网络连接不良而被浏览器在此页面加载或将来的页面加载中阻止。如果在此页面加载中被阻止,将在随后的控制台消息中确认。更多详情参见

那么我们来分析一下百度地图API导入得到的JavaScript的代码

(function() {
  window.BMAP_PROTOCOL = "https"; // https导入会有此行代码
  window.BMap_loadScriptTime = new Date().getTime();
  document.write(
  `<script 
    type="text/javascript" 
    src="https://api.map.baidu.com/getscript?v=3.0&ak='您的密钥'&services=&t=20190301102433"
   > </script>`
  );
 })();

可以得知正是这段代码中的 document.write 引发的警告。那么我们在HTML文件中直接使用 <script type="text/javascript" src="https://api.map.baidu.com/getscript?v=3.0&ak='您的密钥'&services=&t=20190301102433"> </script> 导入百度地图的API就可以避免此警告。不过这样导入时,缺失的另外两行 window.BMAP_PROTOCOL = "https"window.BMap_loadScriptTime = (new Date).getTime() 一定要记得添加到项目中,避免产生其他问题。

以上所述是小编给大家介绍的在HTTPS 项目中使用百度地图 API详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
讨论javascript(一)工厂方式 js面象对象的定义方法
Dec 15 Javascript
JavaScript中的面向对象介绍
Jun 30 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
Jul 09 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
Oct 24 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
Jun 01 Javascript
Javascript实现找不同色块的游戏
Jul 17 Javascript
vue脚手架搭建过程图解
Jun 06 Javascript
Vue中的Props(不可变状态)
Sep 29 Javascript
如何检查一个对象是否为空
Apr 11 Javascript
JS插入排序简单理解与实现方法分析
Nov 25 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
Mar 04 Javascript
vue操作动画的记录animate.css实例代码
Apr 26 #Javascript
JS原生瀑布流效果实现
Apr 26 #Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
Apr 26 #Javascript
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 #Javascript
vue组件间的参数传递实例详解
Apr 26 #Javascript
详解VUE前端按钮权限控制
Apr 26 #Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 #Javascript
You might like
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
javascript对象的property和prototype是这样一种关系
2007/03/24 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
Python正则表达式匹配ip地址实例
2014/10/09 Python
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
wxPython的安装与使用教程
2018/08/31 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
python 读取数据库并绘图的实例
2019/12/03 Python
护士毕业自我鉴定
2014/02/07 职场文书
教师职称自我鉴定
2014/02/12 职场文书
保健品市场营销方案
2014/03/31 职场文书
感谢信的格式
2015/01/21 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
投标单位介绍信
2015/05/05 职场文书
初三数学教学反思
2016/02/17 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle