Pourquoi ne reçois-je pas de même de l'origine de la " politique d'avertissement lors de l'utilisation de l'API Google Maps?
Je suis en train de faire un service web RESTful appel dans mon JavaScript de la page et obtenez le message d'avertissement suivant:
"Cette page est accéder à l'information qui n'est pas sous son contrôle. Cela pose un risque pour la sécurité. Voulez-vous continuer?"
Maintenant que j'ai lu jusqu'à présent et je suis conscient de la inter-domaine, même la politique de l'origine. Cependant, je n'ai pas de tels avertissements lorsque je consomme d'autres Api comme Google Maps API. Clairement le domaine n'est pas le même que celui de mon domaine local. Quelle est la différence?
Ma première hypothèse est que Google est "importé" dans la page à l'aide de la <script>
balise alors que mon RESTE de la consommation est à l'aide de XMLHttpRequest. SI c'est le cas, quelle est la différence entre ces deux approches que l'on mérite un avertissement et l'autre pas?
- Obtenez un outil tel que Fiddler2 et regarder la magie
- Cela n'a pas vraiment fonctionné pour moi. Je l'ai essayé, et reste encore de refus d'autorisation d'erreurs dans chrome et firefox.
- Vous aurez de débogage dans les pièces. Si vous accédez à votre page proxy dans un navigateur web, vous obtenez un sms dont le contenu est l'appel JavaScript?
- J'ai regardé dans cette profondeur de la semaine dernière et a trouvé la seule véritable façon de le faire est d'utiliser JSONP. Vous pouvez réellement accomplir cela est relativement facile, si vous pouvez obtenir le webservice de retour jsonp au lieu de simplement json. Ce projet de code montre comment faire: ttp://www.codeproject.com/KB/webservices/ASPNET_JSONP.aspx
- Oui, c'est correct. Désolé, j'aurais du mettre ça en place dans ma réponse. Je viens manuellement collier de l'JSON, car il est assez simple à faire.
- Bon point fait
Vous devez vous connecter pour publier un commentaire.
Suivantes pourraient expliquer les choses:
http://markmail.org/message/5wrphjwmo365pajy
Aussi, ils emploient script hacks (par exemple, l'insertion d'un script dans le DOM pour obtenir les données demandées, au lieu de XHR).
Je voudrais résumer ce que la solution a ce problème. Vous pouvez trouver un utile URL ici.
Essentiellement, vous injecter du code dans les pages
<script>
tag lors de l'importation de JavaScript. Rien importés par le biais de cette balise est immédiatement exécuté dans le contexte mondial. Donc au lieu de passer dans un fichier JavaScript, passer une URL vers un site web qui renvoie une page pas de balises HTML, mais plutôt une page qui renvoie un code JavaScript texte qui appelle un rappel dans votre code.Vous utilisez les paramètres d'URL pour dire la page qu'est - 'callback', pour retourner et tous les paramètres qui doivent aller dans le rappel. Par exemple:
Lors de cette évaluation, le contenu de la page renvoyée par le 'src' le paramètre est:
Sur le côté serveur, vous allez créer un site à l'URL qui l'emporte sur le OnLoad équivalents (quel que soit le langage côté serveur que vous utilisez). Au lieu d'une page HTML, le OnLoad prendra les paramètres de l'URL et re-swizzle pour correspondre à la fonction de rappel d'appel ci-dessus.
Lorsque la substitution est faite, le rappel est immédiatement appelée lorsque le client charge la page. L'avantage de ceci est que le 'src' URL ne pas correspondre au domaine de la page hébergée.
Voici ce que le client HTML page va ressembler à la fin: