en utilisant jquery.getJson avec géocodage service HTTP Google [fermé]
Question
Google offre une merveilleuse interface REST pour le géocodage et géocodage inverse une adresse. Ma clé API est valide, et si j'entre la demande directement dans l'adresse du navigateur, il fonctionne très bien. Cependant, la jquery suivante échoue terrible et je ne vois pas pourquoi. En espérant que vous pourriez me aider.
$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json",
function(data, textStatus){
console.log(data);
});
L'interface REST de Google doc pour ce service: http: // code. google.com/apis/maps/documentation/geocoding/index.html
La solution
Le problème ici est que je ne le rappel JSONP spécifiant. Le code correct est le suivant
$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json&callback=?",
function(data, textStatus){
console.log(data);
});
Autres conseils
En raison des restrictions de sécurité, vous ne pouvez pas envoyer une requête AJAX à une URL d'une page dans un autre domaine. Voilà pourquoi cela fonctionne si vous entrez l'URL dans le navigateur, mais pas si vous essayez de faire la demande de votre code javascript.
Une solution courante consiste à utiliser un composant côté serveur agissant comme un proxy :. reçoit vos requêtes AJAX et les envoie au géolocalisateur google
ajouter une fonction d'erreur
error: function(xhr, ajaxOptions, thrownError) {
alert("Ajax Error: " + xhr.status + "\nMsg: " + xhr.responseText);
}
et essayer de déboguer si elle est juste une erreur liée à JSON
J'ai eu le même problème exactement. Voilà comment j'ai pu l'obtenir finalement de travailler pour moi.