将 jquery.getJson 与 Google 的地理编码 HTTP 服务结合使用
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这里的问题是我没有指定 JSONP 回调。 正确的代码如下
The problem here is that I wasn't specifying the JSONP callback. The correct code is as follows
由于安全限制,您无法从不同域中的页面向 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.
添加错误函数
并尝试调试是否只是 json 相关错误
add an error function
and try to debug if it is just a json related error
我也遇到了同样的麻烦。 这就是我最终让它为我工作的方式。
查看 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