Je développe un service API JavaScript. La page html principale ressemble à ceci:Problème de javascript inter-site
<html>
<head>
<script type="text/javascript" src="scripts/logic.js"></script>
<script type="text/javascript" src="scripts/jquery-1..."></script>
<script type="text/javascript" src="http://mydomain/api/main.js"></script>
</head>
...
</html>
Dans le script main.js, je charge un autre script de mydomain. Je le fais en ajoutant une balise de script ([script .. src = "http: //mondomaine/api/getsomedata.js? Callback_id = 3434 & someparams = ..."]). Le script chargé appelle immédiatement la fonction de rappel de l'API: MyApi.processCallback (...). Tout fonctionne bien.
Mais lorsque j'essaie de charger un autre script mydomain à partir d'un fichier local (logic.js), je vois une situation très étrange: tous les objets globaux du script ne sont pas définis. Il n'y a pas d'objet MyApi ou d'objet jQuery $ visibles lors de l'appel précédent. Je ne peux donc pas appeler la fonction de rappel MyApi. Peut-être que c'est à cause de restrictions de sécurité. Anti-XSS, ou quelque chose de similaire. J'ai essayé d'ajouter un en-tête X-XSS-Protection, comme dans toutes les API JavaScript de Google. Mais cela n'a pas aidé.
Je n'utilise pas d'IFRAMES.
Le problème peut être résolu exactement, car de nombreuses API JavaScript inter-sites fonctionnent (API Google Maps, etc.) sur la même idée.