详解在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类定义原型方法的两种实现的区别评论很多
Sep 12 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
Sep 12 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
Apr 29 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
Aug 30 Javascript
js实现select跳转功能代码
Oct 22 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
Nov 13 Javascript
浅谈jquery中使用canvas的问题
Oct 10 Javascript
简单实现IONIC购物车功能
Jan 10 Javascript
Angular2中监听数据更新的方法
Aug 31 Javascript
用POSTMAN发送JSON格式的POST请求示例
Sep 04 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
Oct 19 Javascript
layui中select,radio设置不生效的解决方法
Sep 05 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源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
自己的js工具 Event封装
2009/08/21 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
javascript生成大小写字母
2015/07/03 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
python config文件的读写操作示例
2019/09/27 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
母亲节演讲稿范文
2014/01/02 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
暑期培训班策划方案
2014/08/26 职场文书
教师节活动总结
2014/08/29 职场文书
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫