utilizando jquery.getJson con servicio HTTP GeoCoding de Google [cerrada]
Pregunta
Google ofrece una interfaz de descanso maravilloso para la geocodificación y geocodificación inversa una dirección. Mi clave de API es válida, y si entro en la solicitud directamente en la dirección del navegador que funciona muy bien. Sin embargo, la siguiente jQuery falla terrible y estoy a falta de ver por qué. Con la esperanza de que me podría ayudar aquí.
$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json",
function(data, textStatus){
console.log(data);
});
interfaz doc REST de Google para este servicio: http: // código. google.com/apis/maps/documentation/geocoding/index.html
Solución
El problema aquí es que no estaba especificando la devolución de llamada JSONP. El código correcto es el siguiente
$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json&callback=?",
function(data, textStatus){
console.log(data);
});
Otros consejos
Debido a las restricciones de seguridad, no se puede enviar una petición AJAX a una dirección URL de una página en un dominio diferente. Es por eso que funciona si se introduce la URL en el navegador, pero no si se intenta realizar la solicitud a partir del código JavaScript.
Una solución común es utilizar un componente lado servidor que actúa como un proxy :. recibe sus peticiones AJAX y los envía a la geolocalizador google
añadir una función de error
error: function(xhr, ajaxOptions, thrownError) {
alert("Ajax Error: " + xhr.status + "\nMsg: " + xhr.responseText);
}
y tratar de depurar si es sólo un error relacionado con JSON
Yo tenía exactamente el mismo problema. Así es como yo era capaz de conseguir en última instancia que funcione para mí.