首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何对Google Maps API进行跨域AJAX调用?

如何对Google Maps API进行跨域AJAX调用?
EN

Stack Overflow用户
提问于 2010-05-27 21:59:34
回答 1查看 54.5K关注 0票数 44

我正在尝试向Google Maps Geocoding webservice发出jQuery $.getJSON调用,但由于跨域安全问题,此操作不起作用。

我还没能在网上解决这个问题,但我读了一些关于Google Javascript API或JSONP的文章,但到目前为止还没有明确的答案……

有人能照亮我吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-27 22:22:51

当Google Maps为Server-side Geocoding Web Service提供了一个全功能的Client-side Geocoding API时,我看不出使用JavaScript有什么好处。

首先,这将自动解决同源问题,此外,请求限制将按客户端IP地址计算,而不是按服务器IP地址计算,这对于流行的站点来说会有很大的不同。

下面是一个使用JavaScript地理编码接口v3的非常简单的示例:

代码语言:javascript
代码运行次数:0
运行
复制
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>

<script type="text/javascript">     
   var geocoder = new google.maps.Geocoder();
   var address = 'London, UK';

   if (geocoder) {
      geocoder.geocode({ 'address': address }, function (results, status) {
         if (status == google.maps.GeocoderStatus.OK) {
            console.log(results[0].geometry.location);
         }
         else {
            console.log("Geocoding failed: " + status);
         }
      });
   }    
</script>

如果出于某些原因,你仍然想使用服务器端的web服务,你可以设置一个非常简单的reverse proxy,如果你使用的是Apache,可以使用mod_proxy。这将允许您使用AJAX请求的相对路径,而HTTP服务器将充当任何“远程”位置的代理。

在mod_proxy中设置反向代理的基本配置指令是ProxyPass。您通常会按如下方式使用它:

代码语言:javascript
代码运行次数:0
运行
复制
ProxyPass     /geocode/     http://maps.google.com/maps/api/geocode/

在这种情况下,浏览器可以向/geocode/output?parameters发出请求,但服务器将通过充当http://maps.google.com/maps/api/geocode/output?parameters的代理来提供服务。

票数 88
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2921745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档