Pergunta

O Google oferece uma interface maravilhosa REST para geocodificação e geocodificação reversa um endereço. A minha chave API é válida, e se eu entrar o pedido diretamente no endereço do navegador funciona muito bem. No entanto, o seguinte jQuery falha terrível e eu estou deixando de ver o porquê. Esperando que você poderia me ajudar aqui.

$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json",
  function(data, textStatus){
     console.log(data);
  });

interface de doc do Google REST para este serviço: http: // código. google.com/apis/maps/documentation/geocoding/index.html

Foi útil?

Solução

O problema aqui é que eu não estava especificando o callback JSONP. O código correto é o seguinte

$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json&callback=?",
  function(data, textStatus){
     console.log(data);
  });

Outras dicas

Devido a restrições de segurança, você não pode enviar um pedido de AJAX para uma URL de uma página em um domínio diferente. É por isso que ele funciona se você digitar o URL no navegador, mas não se você tentar fazer o pedido do seu código javascript.

Uma solução comum é usar um componente do lado do servidor agindo como um proxy : ele recebe seus pedidos de AJAX e os envia para o google GeoLocator

.

adicionar uma função de erro

            error: function(xhr, ajaxOptions, thrownError) {
            alert("Ajax Error: " + xhr.status + "\nMsg: " + xhr.responseText);
        }

e tentar depuração se ele é apenas um relacionados json erro

Eu tinha exatamente o mesmo problema. Isto é como eu era capaz de, finalmente, obter-lo para trabalhar para mim.

ver API do Google Maps docs

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top