您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

当Google Maps提供功能齐全的JavaScript客户端地理编码API时,使用服务器端地理编码Web服务没有任何优势。

首先,这将自动解决您的同源问题,此外,请求限制将按客户端IP地址而不是服务器IP地址进行计算,这对于受欢迎的网站可能会产生巨大的影响。

这是一个使用JavaScript Geocoding API v3的非常简单的示例:

<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服务,则可以设置一个非常简单的反向代理,如果使用的是Apache ,则可以使用mod_proxy。这将允许您为AJAX请求使用相对路径,而HTTP服务器将充当任何“远程”位置的代理。

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

ProxyPass     /geocode/     http://maps.google.com/maps/api/geocode/

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

Go 2022/1/1 18:18:23 有585人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶