使用jquery.getJson和Google的GeoCoding HTTP服务

时间:2009-05-22 14:39:26

标签: jquery geocoding getjson

Google提供了一个出色的REST界面,用于对地址进行地理编码和反向地理编码。我的API密钥有效,如果我直接在浏览器地址中输入请求,它的效果很好。然而,以下jquery失败可怕,我没有理解为什么。希望你能在这里帮助我。

$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json",
  function(data, textStatus){
     console.log(data);
  });

Google针对此服务的REST界面文档:http://code.google.com/apis/maps/documentation/geocoding/index.html

4 个答案:

答案 0 :(得分:18)

这里的问题是我没有指定JSONP回调。正确的代码如下

$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json&callback=?",
  function(data, textStatus){
     console.log(data);
  });

答案 1 :(得分:3)

由于安全限制,您无法从其他域中的网页向网址发送AJAX请求。这就是为什么它在浏览器中输入URL时有效,但如果你尝试从你的javascript代码中输入请求则不行。

常见的解决方法是使用server side component acting as a proxy:它会收到您的AJAX请求并将其发送到Google地理定位器。

答案 2 :(得分:0)

添加错误功能

            error: function(xhr, ajaxOptions, thrownError) {
            alert("Ajax Error: " + xhr.status + "\nMsg: " + xhr.responseText);
        }

并尝试调试它是否只是一个与json相关的错误

答案 3 :(得分:0)

我遇到了同样的麻烦。这就是我最终能够让它为我工作的方式。

see google maps api docs