usando jQuery.getJSON com Service HTTP de geocodificação do Google [fechado]
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
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.