我的页面上有以下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?我上面使用的解码网址是:
这也可以在地址栏中正常工作。
感谢您的任何建议。
答案 0 :(得分:2)
无法通过AJAX访问Geocoding API。请使用Google Maps API V3中的Geocoder
。
这提供了对Google Geocoder的异步访问。