如何使用HTTPS调用HERE Maps API v3

时间:2014-12-18 22:13:51

标签: javascript grails here-api

如何通过HTTPS调用HERE地图?

我在我的服务器上使用HTTPS,所以当我这样称呼时:

    <script src="http://js.api.here.com/v3/3.0/mapsjs-core.js" type="text/javascript" charset="utf-8"></script>
    <script src="http://js.api.here.com/v3/3.0/mapsjs-service.js" type="text/javascript" charset="utf-8"></script>

由于“混合内容”,浏览器会阻止请求,因此不会显示地图...

我尝试在脚本源上将“http”更改为“https”,但我遇到同样的问题,因为两个javascripts在其代码中都有“http”调用。

顺便说一下,后端是用Grails编写的,并且使用Spring Security Core插件来保护通道。

非常感谢您的帮助!

谢谢和问候!

2 个答案:

答案 0 :(得分:11)

您需要从https加载API,此外还需要设置:

// Create a platform object to communicate with the HERE REST APIs
var platform = new H.service.Platform({
    useCIT: true,
    app_id: app_id,
    app_code: app_code,
    useHTTPS: true
});

Trick是useHTTPS:true,如文档中所述:HERE Developers Guide

答案 1 :(得分:2)

对于HTTPS:

  • 通过&#34;相对协议&#34;
  • 加载js和css文件
  • 在创建H.service.Platform
  • 实例时强制使用HTTPS

对于&#34;相对协议&#34;,在头部加载CSS:

<link rel="stylesheet" type="text/css" href="//js.api.here.com/v3/3.0/mapsjs-ui.css" />

对于&#34;相对协议&#34;,在关闭BODY标记之前加载JS:

<script src="//js.api.here.com/v3/3.0/mapsjs-core.js" type="text/javascript" charset="utf-8"></script>
<script src="//js.api.here.com/v3/3.0/mapsjs-service.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="//js.api.here.com/v3/3.0/mapsjs-ui.js"></script>
<script type="text/javascript" src="//js.api.here.com/v3/3.0/mapsjs-mapevents.js"></script>

通过这些步骤,可以正确加载所有js和CSS。但是当SDK加载Tiles时你会遇到一些问题。要允许SDK正确加载HTTPS协议中所需的所有资产,您需要使用&#39;使用HTTPS&#39; Platform构造函数中的选项:

this.platform = new H.service.Platform({
  'app_id': process.env.VUE_APP_HERE_APP_ID,
  'app_code': process.env.VUE_APP_HERE_APP_CODE,
  'useHTTPS': true
})