动态设置googleapi密钥

时间:2015-07-10 13:44:03

标签: javascript google-maps google-maps-api-3

我有一个应用程序想要嵌入谷歌地图,并且需要将密钥放入配置文件中。所以这就是我的工作:

在config.js

GOOGLE_MAP_KEY =" mykeyofgoogleapi";

在index.html中

<script type="text/javascript" 
        src="https://maps.googleapis.com/maps/api/js?key="+GOOGLE_MAP_KEY+"&sensor=true">
</script>

问题是我看到Google的GET网址只是

Request URL:  https://maps.googleapis.com/maps/api/js?key=

网址的其余部分丢失了。

看起来我在连接这样的URL时做了一些不好的事情。怎么了?

3 个答案:

答案 0 :(得分:10)

在您指定<script>标记的位置,您正在编写HTML而不是Javascript(即使您正在使用它来加载JS文件)。因此,您无法在HTML中引用Javascript变量。

要做到这一点,您需要使用javascript加载Google Maps JS,而不是HTML。例如,请参阅文档中的示例: https://developers.google.com/maps/documentation/javascript/examples/map-simple-async

<script>
var GOOGLE_MAP_KEY = "mykeyofgoogleapi";

function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://maps.googleapis.com/maps/api/js?v=3' +
      '&key=' + GOOGLE_MAP_KEY +'&callback=initialize'; //& needed
  document.body.appendChild(script);
}

window.onload = loadScript;
</script>

答案 1 :(得分:0)

您不能在HTML中使用+运算符。它特别是一个JavaScript运算符。由于HTML无法识别+,因此它只会终止key=处的字符串。

另一种解决方案是在JavaScript中使用Ajax导入URL。

有关详细信息,请参阅此文档:https://api.jquery.com/jquery.getscript/。它需要使用jQuery。

答案 2 :(得分:0)