gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 03:06:03 26 4
gpt4 key购买 nike

我正在尝试对 Google Maps Geocoding webservice 进行 jQuery $.getJSON 调用, 但由于跨域安全问题,这不起作用。

我一直无法在网上弄明白,但我已经阅读了一些关于 Google Javascript API 或 JSONP 的内容,但到目前为止还没有明确的答案......

谁能启发我?

谢谢!

最佳答案

我看不出使用 Server-side Geocoding Web Service 有什么好处当 Google map 提供全功能 Client-side Geocoding API用于 JavaScript。

首先,这会自动解决您的同源问题,此外,请求限制将按客户端 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>

如果出于某种原因您仍想使用服务器端网络服务,您可以设置一个非常简单的 reverse proxy , 也许使用 mod_proxy如果您使用的是 Apache。这将允许您为 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.

关于javascript - 如何对 Google Maps API 进行跨域 AJAX 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2921745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com