为什么Google Maps API会返回405错误?

时间:2012-02-08 19:44:48

标签: google-maps geolocation

我的页面上有以下jquery片段:

$(".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,谷歌需要GET,但后来我用Firebug检查标题,他们肯定是作为GET发送的。

什么可以导致谷歌返回405?我上面使用的解码网址是:

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

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

感谢您的任何建议。

1 个答案:

答案 0 :(得分:2)

无法通过AJAX访问Geocoding API。请使用Google Maps API V3中的Geocoder

这提供了对Google Geocoder的异步访问。