использование jquery.getJSON с HTTP-сервисом геокодирования Google [закрыто]
Вопрос
Google предлагает замечательный интерфейс REST для геокодирования и обратного геокодирования адреса.Мой ключ API действителен, и если я ввожу запрос непосредственно в адрес браузера, он отлично работает.Однако следующий jquery приводит к ужасному сбою, и я не понимаю, почему.Надеялся, что вы могли бы помочь мне здесь.
$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json",
function(data, textStatus){
console.log(data);
});
Документ REST interface от Google для этого сервиса: http://code.google.com/apis/maps/documentation/geocoding/index.html
Решение
Проблема здесь в том, что я не указывал обратный вызов JSONP.Правильный код выглядит следующим образом
$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json&callback=?",
function(data, textStatus){
console.log(data);
});
Другие советы
Из-за ограничений безопасности вы не можете отправить AJAX-запрос на URL-адрес со страницы в другом домене.Вот почему это работает, если вы вводите URL-адрес в браузере, но не если вы пытаетесь выполнить запрос из своего кода javascript.
Распространенным обходным путем является использование серверный компонент, действующий в качестве прокси:он получает ваши AJAX-запросы и отправляет их в Google geolocator.
добавить функцию ошибки
error: function(xhr, ajaxOptions, thrownError) {
alert("Ajax Error: " + xhr.status + "\nMsg: " + xhr.responseText);
}
и попробуйте отладить, если это просто ошибка, связанная с json
У меня была точно такая же проблема.Вот как я смог в конечном счете заставить это работать на меня.