需要JS,Google地理编码 - 同源问题

时间:2013-02-18 14:08:44

标签: javascript json google-maps-api-3 requirejs geocoding

我正在做什么以及我尝试过什么

我正在使用Google Geo编码网络服务获取我传递的地址的纬度和经度,如下所示:

$.getJSON("http://maps.googleapis.com/maps/api/geocode/json?address=Boston&sensors=true",function(data){
    //Do my programming here
});

由于某些原因,最初工作得很好,但之后它停止了工作,我发现this是问题,即使用Google客户端API。

我还在that SO问题上阅读了答案,该问题表明<script>标记有助于克服跨站点脚本问题。

我的问题:

我正在使用RequireJs,所以我包含这样的文件:

var Google = require("http://maps.google.com/maps/api/js?sensor=false");

那么,如何让我的Google API再次运行,以及如何使用requireJS

1 个答案:

答案 0 :(得分:1)

requirejs将异步加载Maps-API,但您使用的URL不能用于异步加载(请参阅async loading javascript with document.write)。

该怎么做:将callback-parameter添加到网址,以便能够异步加载Maps-API,并在名称等于该名称的函数中执行与google-maps相关的代码提供的callback - 参数的值。

function geocodeaddr(){
  var geocoder = new google.maps.Geocoder();
      geocoder.geocode({ 'address': 'Boston' }, function (results, status) {
         if (status == google.maps.GeocoderStatus.OK) {
            console.log(results[0].geometry.location);
         }
         else {
            console.log("Geocoding failed: " + status);
         }
      });
}
require(["http://maps.google.com/maps/api/js?sensor=false&callback=geocodeaddr"]);