1

请原谅我的英语不好,我是法国人;)

所以,我必须让 Ajax 给你打电话这种网址: http ://maps.googleapis.com/maps/api/geocode/json?latlng=45.85941212790755,0&sensor=true

使用此代码:

$.ajax({ url:'http://maps.googleapis.com/maps/api/geocode/json?latlng='+pos.coords.latitude+','+pos.coords.longitude+'&sensor=true',
          success: function(results){
              // ...
          }
        });

但是对于 IE8 来说它永远不会成功(对于 chrome 和 FF、IE9&10 来说没问题)。

你有想法吗?

4

1 回答 1

2

编辑

我的错,在 IE8 中,您不能再从客户端请求地理编码,因为谷歌已经JSONP从他们的地理编码器中删除了支持。

你可以做两件事之一

  1. 使用您自己的服务器作为代理(我这样做)。这基本上意味着您向自己的服务器上的脚本发出请求,该脚本使用 cURL(或类似的)向谷歌地理编码器发出请求,然后将结果返回给您。

  2. 如果您使用的是 google maps api,您可以选择使用它的内置地理编码器 ( https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple )

旧回复

这是 IE8 中的跨域调用——你会得到一个No Transport错误(或者如果你添加jQuery.support.cors = true你仍然会得到一个Access is Denied错误。

最好的解决方案是使用JSONP. jQuery 使使用变得JSONP简单。

查看这个jQuery Docs 页面并向下滚动到他们使用 JSONP 和 Flickr API 的示例。

于 2013-10-02T13:08:28.037 回答