JavaScriptAPIサービスを開発しています。メインのhtmlページは次のようになります。
<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>
main.jsスクリプトで、mydomainから別のスクリプトをロードします。スクリプトタグ([script .. src = "http://mydomain/api/getsomedata.js?callback_id = 3434&someparams = ..."])を追加して実行しています。ロードされたスクリプトは、APIコールバック関数MyApi.processCallback(...)をすぐに呼び出します。すべて問題なく動作します。
しかし、ローカルファイル(logic.js)から別のmydomainスクリプトを読み込もうとすると、非常に奇妙な状況が発生します。すべてのスクリプトグローバルオブジェクトが未定義です。前の呼び出し中に表示されたMyApiオブジェクトまたはjQuery$オブジェクトはありません。そのため、MyApiコールバック関数を呼び出すことができません。
おそらくそれはセキュリティ制限のためです。Anti-XSS、または同様のもの。すべてのGoogleJavaScriptAPIと同様に、X-XSS-Protectionヘッダーを追加しようとしました。しかし、それは役に立ちませんでした。
IFRAMESは使用していません。
多くのクロスサイトJavaScriptAPI(Google Maps APIなど)が同じアイデアで機能しているため、問題は正確に解決できます。