Domanda

Google offre una splendida un'interfaccia REST per la geocodifica e reverse geocoding un indirizzo. La mia chiave API è valida, e se entro la richiesta direttamente in indirizzi del browser funziona alla grande. Tuttavia, il seguente jquery non riesce terribile e sto riuscendo a capire perché. Sperando mi si potrebbe dare una mano qui.

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

REST doc l'interfaccia di Google per questo servizio: http: // codice. google.com/apis/maps/documentation/geocoding/index.html

È stato utile?

Soluzione

Il problema qui è che non ero specificando la richiamata JSONP. Il codice corretto è la seguente

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

Altri suggerimenti

A causa di restrizioni di sicurezza, non è possibile inviare una richiesta AJAX a un URL da una pagina in un dominio diverso. Ecco perché funziona se si inserisce l'URL nel browser, ma non se si tenta di fare la richiesta dal codice javascript.

Una soluzione comune è quello di utilizzare un componente lato server che agisce da proxy :. riceve le richieste AJAX e li invia al Geolocator Google

aggiungere una funzione di errore

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

e cercare di eseguire il debug se è solo un errore relativo json

Ho avuto esattamente lo stesso problema. Questo è come ho potuto in ultima analisi, per farlo funzionare per me.

vedere le mappe di Google Documenti API

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top