详解在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 相关文章推荐
两个数组去重的JS代码
Dec 04 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
Apr 29 Javascript
详解React-Todos入门例子
Nov 08 Javascript
jQuery获取this当前对象子元素对象的方法
Nov 29 Javascript
Vue.js在使用中的一些注意知识点
Apr 29 Javascript
React SSR样式及SEO的实践
Oct 22 Javascript
AJAX在JQuery中的应用详解
Jan 30 jQuery
DatePickerDialog 自定义样式及使用全解
Jul 09 Javascript
Vue.js仿Select下拉框效果
Feb 18 Javascript
React实现轮播效果
Aug 25 Javascript
浅析JavaScript中的变量提升
Jun 01 Javascript
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 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源代码
2006/10/09 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
js中switch语句的学习笔记
2020/03/25 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
如何使用python爬取csdn博客访问量
2016/02/14 Python
python3.5仿微软计算器程序
2020/03/30 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
Python笔记之代理模式
2019/11/20 Python
python中Lambda表达式详解
2019/11/20 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
研修第一天随笔感言
2014/02/15 职场文书
大学生村官考核材料
2014/05/23 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书