【问题标题】:Why does Google Maps API return a 405 error?为什么 Google Maps API 返回 405 错误?
【发布时间】:2012-02-09 05:21:19
【问题描述】:

我的页面上有以下 jquery sn-p:

$(".lookup").click(function () {
            var addr =     document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationAddr1.value + ",+" + document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationCity.value + ",+" + document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationState.value;
            $.ajax({
                url: "http://maps.googleapis.com/maps/api/geocode/json?address="+escape(addr)+"&sensor=false",
                success: function (data) {
                    var mydata = JSON.parse(data);
                    document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationLat.value = mydata.results[0].geometry.location.lat;
                    document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationLong.value = mydata.results[0].geometry.location.lng;
                }
            });
        });

可以看出,这会将地址、城市状态和 zip 的当前表单值传递给 Google API,然后解析 JSON 响应并在同一表单上填充纬度和经度字段。这段代码在我的本地机器上运行良好。但是当我把它放在我的生产服务器上时,我看到一个 405 错误返回。在谷歌搜索 405 错误之后,我想也许我的服务器正在强制执行 POST,而 Google 需要 GET,但后来我使用 Firebug 检查了标头,它们肯定是作为 GET 发送的。

什么会导致 Google 返回 405?我上面使用的解码后的网址是:

http://maps.googleapis.com/maps/api/geocode/json?address=1630%20E.%20Lamar%20Blvd%2C+Arlington%2C+TX&sensor=false

这在地址栏中也可以正常工作。

感谢您的任何建议。

【问题讨论】:

标签: google-maps geolocation


【解决方案1】:

无法通过 AJAX 访问地理编码 API。请在 Google Maps API V3 中使用Geocoder

这提供了对 Google 地理编码器的异步访问。

【讨论】:

  • 好的。我可以很容易地尝试。为什么它会在我的本地机器上以测试模式运行?它仍然是ajax,不是吗?奇怪...
猜你喜欢
  • 1970-01-01
  • 2015-10-19
  • 2013-01-12
  • 1970-01-01
  • 2019-05-12
  • 1970-01-01
  • 2015-06-12
  • 2016-08-02
  • 2012-06-05
相关资源
最近更新 更多