19

同一生成元ポリシーは、次の2つのドメインにどのように適用されますか?

http://server1.MyDomain.com

http://server2.MyDomain.com

コンテンツがserver2から取得された場合、server1でホストされているページでJSを実行できますか?

以下のダニエルの答えに従って編集<script>してください。タグを使用して異なるサブドメイン間にスクリプトを含めることができますが、非同期リクエストについてはどうでしょうか。server2からserver1でホストされているページにスクリプトをダウンロードするとどうなりますか。スクリプトを使用して、server2上のサービスと非同期で通信できますか?

4

2 に答える 2

24

<script>タグはポリシーから除外されているため、タグを使用して異なるサブドメイン間にのみスクリプトを含めることができます。

http://www.example.com/dir/page.htmlソースとして使用する(ウィキペディアから):

Compared URL                               Outcome  Reason
---------------------------------------------------------------------------------------------
http://www.example.com/dir/page.html       Success  Same protocol and host
http://www.example.com/dir2/other.html     Success  Same protocol and host
http://www.example.com:81/dir2/other.html  Failure  Same protocol and host but different port
https://www.example.com/dir2/other.html    Failure  Different protocol
http://en.example.com/dir2/other.html      Failure  Different host
http://example.com/dir2/other.html         Failure  Different host (exact match required)
http://v2.www.example.com/dir2/other.html  Failure  Different host (exact match required)

アップデート:

スクリプトを使用して、server2上のサービスと非同期で通信できますか?

はい、JSONPを使用できます。これは、タグのオープンポリシーを利用して<script>、他のオリジンからJSONを取得します。

次のStackOverflowの投稿で説明されているように、リバースプロキシの使用を検討することもできます。

于 2010-03-30T08:35:35.530 に答える
0

もちろん、挿入したスクリプトは、どこから来たのか気にせずに実行できます。あなたのページにグーグルマップを挿入する方法を考えてください。

あなたが説明しているのはjsonpと呼ばれるパターンです。他のホスト上のサーバーがページに挿入したスクリプトを返し、スクリプトが応答引数を使用してページ内の関数を呼び出す場合。

于 2010-03-30T08:48:23.733 に答える