Pie*_*ouy 43 javascript google-maps jsonp cross-domain google-maps-api-3
我正在尝试对Google Maps Geocoding Web服务进行jQuery $.getJSON
调用,但由于跨域安全问题,这不起作用.
我无法在网上弄明白,但我已经阅读了一些关于Google Javascript API或JSONP的内容,但到目前为止还没有明确答案......
谁能让我高兴?
谢谢!
Dan*_*llo 87
当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>
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你还想使用服务器端的web服务,你可以设置一个非常简单的反向代理,如果你使用Apache ,可能使用mod_proxy.这将允许您为AJAX请求使用相对路径,而HTTP服务器将充当任何"远程"位置的代理.
在mod_proxy中设置反向代理的基本配置指令是ProxyPass.您通常会按如下方式使用它:
ProxyPass /geocode/ http://maps.google.com/maps/api/geocode/
Run Code Online (Sandbox Code Playgroud)
在这种情况下,浏览器可以发出请求,/geocode/output?parameters
但服务器将通过充当代理来为此服务http://maps.google.com/maps/api/geocode/output?parameters
.
归档时间: |
|
查看次数: |
52693 次 |
最近记录: |