2010-10-09 4 views
3

J'ai écrit un wrapper API Google Maps dans JS, fait des tests locaux avec du code html statique, et tout a bien fonctionné. Ensuite, j'ai chargé les fichiers dans un serveur Web local fonctionnant dans localhost: 8080, testé les panneaux de carte, et encore une fois, tout a bien fonctionné.Google Maps Remote .js et Access-Control-Allow-Origin

Puis, une semaine s'est écoulée, j'ai ajouté une carte à une page, et je n'ai pas pu la charger. Rien n'a changé (que je sais de toute façon, de toute évidence quelque chose a), et des tests statiques continuer à travailler très bien, mais lorsque je tente de charger l'API à partir du serveur-je obtenir ceci dans la console de débogage:

XMLHttpRequest cannot load http://maps.google.com/maps/api/js?sensor=false. 
Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin. 

Je lis un peu autour, mais je n'arrive toujours pas à comprendre l'erreur, et encore moins à la réparer. Quelqu'un peut-il me donner un coup de main?

éditer: J'utilise un simple tag pour charger google's js. Pas de jQuery, pas de rien.

Merci d'avance!

Répondre

1

@Santiago j'espère que je peux vous aider maintenant :) L'erreur que vous recevez est due à l'interdiction de Google de cross-site scripting. Vous pouvez trouver l'information ici: Google qui référence également: Wikipedia Article Il semble que vous deviez créer un service proxy pour votre client sur votre serveur web public. Comme la requête provient de votre serveur Web public et que la réponse est renvoyée vers votre serveur Web, elle répond aux mêmes exigences de domaine que Google. Je ne connais pas encore assez python pour créer un proxy python cgi mais je dois penser qu'il existe déjà de nombreuses solutions différentes. De plus, vous serez limité par votre serveur quant au type de solution que vous employez.

HTH! ~ MWR