IE8 - Geocode Ajax调用永远不会成功

时间:2013-10-02 12:38:03

标签: ajax json internet-explorer-8 geocoding

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

所以,我要把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都可以。)

你有个主意吗?

1 个答案:

答案 0 :(得分:2)

修改

我的不好,在IE8中,您无法再从客户端请求地理编码,因为Google已从其地理编码器中删除了JSONP支持。

你可以做两件事之一

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

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

  3. OLD REPLY

    这是IE8中的跨域调用 - 您将收到No Transport错误(或者如果添加jQuery.support.cors = true,您仍会收到Access is Denied错误。

    最佳解决方案是使用JSONP。 jQuery使用JSONP琐碎。

    查看此jQuery Docs page并使用JlickP与Flickr API向下滚动到他们的示例。