详解在HTTPS 项目中使用百度地图 API
百度地图 API 产品简介
百度地图 JavaScript API 是一套由 JavaScript 语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持 PC 端和移动端基于浏览器的地图应用开发,且支持 HTML5 特性的地图开发。
百度地图 JavaScript API 支持 HTTP 和 HTTPS,免费对外开放,可直接使用。接口使用无次数限制。在使用前,您需先申请密钥(ak)才可使用。
基础使用
引用百度地图 API, 将 “您的密匙” 替换为你在百度地图申请的 AK, 即可使用。
<script type="text/javascript" src="http://api.map.baidu./api?v=3.0&ak=您的密钥" ></script>
更多问题
问题1. https项目
在 https 项目中通过http导入会出现以下问题
那么百度地图的 JavaScript API 是否支持 HTTPS 请求呢?
答案是的。
JavaScript API V2.0 及以上版本支持 HTTPS。
如果想使用 HTTPS 协议调用 JavaScript API,直接将脚本引用的协议修改为 HTTPS 即可。
<script type="text/javascript" src="https://api.map.baidu./api?v=2.0&ak=您的密钥" ></script> <script type="text/javascript" src="https://api.map.baidu./api?v=3.0&ak=您的密钥" ></script>
以上是官方文档介绍的用法,在用搜索引擎查找问题解决方案时,看到前辈们的技术博客都说使用 <script type="text/javascript" src="https://api.map.baidu./api?v=3.0&ak=您的密钥"></script>
不能达到预期效果,必须添加参数 &s=1
才可以。
不知道是不是官方进行过优化,狼蚁网站SEO优化两张图是今日实测的结果
可以看到添加 &s=1
后所得到的结果与没添加时是__一致的__。
问题2. 浏览器警告
在部分浏览器(如谷歌)中会产生警告如下
A parser-blocking, cross site (i.e. different eTLD+1) script, https://api.map.baidu./getscript?v=3.0&ak='您的密钥'&services=&t=20190301102433, is invoked via document.write. The work request for this script MAY be blocked by the browser in this or a future page load due to poor work connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://.chromestatus./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./getscript?v=3.0&ak='您的密钥'&services=&t=20190301102433" > </script>` ); })();
可以得知正是这段代码中的 document.write
引发的警告。那么我们在HTML文件中直接使用 <script type="text/javascript" src="https://api.map.baidu./getscript?v=3.0&ak='您的密钥'&services=&t=20190301102433"> </script>
导入百度地图的API就可以避免此警告。不过这样导入时,缺失的两行 window.BMAP_PROTOCOL = "https"
与 window.BMap_loadScriptTime = (new Date).getTime()
一定要记得添加到项目中,避免产生其他问题。
以上所述是长沙网络推广给大家介绍的在HTTPS 项目中使用百度地图 API详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程