1

クライアントが API へのコールバックを行うために Web サイトに埋め込むことができる HTML のスニピットを提供しています。この HTML は単純なフォームであり、当社のサーバーでホストされている Javascript ファイルです。

これは、クライアントが Web サイト (clientsite.com) でホストするものです。

<script type="text/javascript" src="http://mysite.com/webcallback/callback_script.js"></script> 
<form onsubmit="makeCallback();return false;">
<input id="myInput" type="text" />
<input type="submit" value="Go" />
</form>

makeCallback が呼び出されると、mysite.com でホストされているスクリプトは次のことを行います。

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://mysite.com/api/callback.php");
xhr.send();

スクリプトのドメインと XHR リクエストのドメインは同じですが、フォームとスクリプト タグをホストする HTML は clientsite.com にあることに注意してください。

これは FF と Chrome では問題なく動作しますが、IE ではアクセス拒否エラーが発生します。same-origin-policy と関係があると思いますが、これが FF と Chrome では機能するのに IE では機能しない理由を理解しようとしています。IEで動作させる方法はありますか?

ありがとう

4

1 に答える 1

1

インクルードされたスクリプトは、それ自体のスコープではなく、それをインクルードしているページのスコープで実行されます。したがって、コードは別のドメインからリクエストしています。

このリクエストを許可するブラウザーには、クロスドメイン制限のより緩和されたバージョンがあります。

于 2010-08-24T16:01:34.093 に答える