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

¿Fue útil?

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í.

ver Google Maps API Docs

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top