将 jquery.getJson 与 Google 的地理编码 HTTP 服务结合使用

发布于 2024-07-21 16:29:14 字数 535 浏览 5 评论 0原文

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

Google offers a wonderful REST interface for geocoding and reverse geocoding an address. My API key is valid, and if I enter the request directly into the browser address it works great. However, the following jquery fails terrible and I'm failing to see why. Hoping you could help me out here.

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

Google's REST interface doc for this service: http://code.google.com/apis/maps/documentation/geocoding/index.html

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

新一帅帅 2024-07-28 16:29:14

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

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

The problem here is that I wasn't specifying the JSONP callback. The correct code is as follows

$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json&callback=?",
  function(data, textStatus){
     console.log(data);
  });
£噩梦荏苒 2024-07-28 16:29:14

由于安全限制,您无法从不同域中的页面向 URL 发送 AJAX 请求。 这就是为什么当您在浏览器中输入 URL 时它会起作用,但如果您尝试从 javascript 代码发出请求则不起作用。

常见的解决方法是使用服务器端组件充当代理:接收您的 AJAX 请求并将它们发送到 google 地理定位器。

Due to security restrictions, you can not send an AJAX request to a URL from a page in a different domain. That is why it works if you enter the URL in the browser, but not if you try to make the request from your javascript code.

A common workaround is to use a server side component acting as a proxy: it receives your AJAX requests and sends them to the google geolocator.

冷弦 2024-07-28 16:29:14

添加错误函数

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

并尝试调试是否只是 json 相关错误

add an error function

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

and try to debug if it is just a json related error

晚风撩人 2024-07-28 16:29:14

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

查看 Google 地图 API 文档

I had the exact same trouble. This is how I was able to ultimately get it to work for me.

see google maps api docs

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文