Почему API Карт Google возвращает ошибку 405? - PullRequest
0 голосов
/ 08 февраля 2012

На моей странице есть следующий фрагмент 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

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

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

1 Ответ

2 голосов
/ 09 февраля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...