この問題の解決策を要約したいと思います。役に立つURL hereがあります。
JavaScriptをインポートするときは、基本的にコード<script>
タグを使用してコードを注入します。このタグを通じてインポートされたものは、グローバルコンテキストで直ちに実行されます。そのため、JavaScriptファイルを渡す代わりに、HTMLタグではなく、コード内でコールバックを呼び出すJavaScriptコードのテキストを返すページを返すWebサイトにURLを渡します。
URLパラメータを使用して、返される「コールバック」と、コールバックに入る必要のあるパラメータをページに伝えます。これが評価されると「SRC」パラメータによって返さページのコンテンツは、
<script type="text/javascript" src="http://crossdomainhost/CrossDomainConsumerSite/Default.aspx?callback=myCallback¶m1=myParam"></script>
:例えば、サーバー側で
myCallback(myParam);
、あなたが優先されますそのURLのサイトを作成します。 OnLoad相当(使用しているサーバー側の言語を問わず)。ページHTMLの代わりに、OnLoadはURLパラメータを受け取り、上のコールバック呼び出しと一致するようにそれらを再スウィズルします。
置換が行われると、クライアントがページをロードするときにコールバックがただちに呼び出されます。これの利点は、 'src' URLがホストされたページのドメインと一致する必要がないことです。
<script type="text/javascript">
var myCallback = function(myParam) {
alert("this was called across domains!");
};
</script>
<script type="text/javascript" src="http://crossdomainhost/CrossDomainConsumerSite/Default.aspx?callback=myCallback¶m=myParam></script>
は、Fiddler2をなどのツールを入手し、これは本当に私のために動作しませんでした魔法 – epascarello
を見る:ここ
は、クライアントのHTMLページが最後にどのように見えるかです。私はそれを試して、まだクロムとFirefoxで許可エラーの拒否を得た。 – Merritt
@Merritt - これを部分的にデバッグする必要があります。 Webブラウザでプロキシページを参照すると、その内容がJavaScript呼び出しであるテキストが返されますか? –