На моей странице есть следующий фрагмент 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;
}
});
});
Как видно, он принимает текущие значения формы адреса, города и почтового индекса и передает их в Google API, затем анализирует ответ JSON и заполняет поля широты и долготы в той же форме. Этот код отлично работает на моей локальной машине. Но когда я помещаю его на свой рабочий сервер, я вижу ошибку 405. После ошибок Googling 405 я подумал, что, возможно, мой сервер форсирует POST, а Google требует GET, но затем я использовал Firebug для проверки заголовков, и они определенно были отправлены как GET.
Что может заставить Google вернуть 405? Декодированный URL, который я использую выше:
http://maps.googleapis.com/maps/api/geocode/json?address=1630%20E.%20Lamar%20Blvd%2C+Arlington%2C+TX&sensor=false
Это прекрасно работает и в адресной строке.
Спасибо за любой совет.