использование jquery.getJSON с HTTP-сервисом геокодирования Google [закрыто]

StackOverflow https://stackoverflow.com/questions/898201

  •  23-08-2019
  •  | 
  •  

Вопрос

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

У меня была точно такая же проблема.Вот как я смог в конечном счете заставить это работать на меня.

смотрите документы Google maps api docs

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top