2012-02-08 3 views
0

У меня есть следующий JQuery фрагмент кода на моей странице:Почему API Карт Google возвращает ошибку 405?

$(".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; 
       } 
      }); 
     }); 

Как можно видеть, это принимает текущие значения формы адрес, город государства и молнии, и передает их в API Google, а затем анализирует ответ 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

Это прекрасно работает в адресной строке, а также.

Спасибо за любой совет.

+0

Duplicate? http://stackoverflow.com/questions/1783288/jquery-on-google-json-fails-with-error-405 – Kath

ответ

2

Невозможно получить доступ к API геокодирования через AJAX. Пожалуйста, используйте Geocoder в Google Maps API V3.

Это обеспечивает асинхронный доступ к Google Geocoder.

+0

ОК. Я могу легко попробовать это. Почему он будет работать на моей локальной машине в тестовом режиме? Это все равно ajax, не так ли? Нечетный ... –

+0

Это кажется странным, вы правы :-) –

Смежные вопросы