2009-05-30 2 views
13

私はドメインjs.mydomain.comを持っていて、それがいくつかのIPアドレスを指していて、別のドメインrequests.mydomain.comが異なるIPアドレスを指しているとします。 .jsファイルをjs.mydomain.comからダウンロードして、Ajaxリクエストをrequests.mydomain.comにすることはできますか?同じドメインポリシーはどのくらい厳密に施行されていますか?

最近のブラウザでは、どのようにして同じドメインポリシーが適用されますか。

答えて

11

AJAX呼び出しでは、ページの読み込み時と同じホスト名(およびポート/スキーム)にしかアクセスできません。

回避策には、bar.example.comのリバースプロキシとして動作するfoo.example.comのURLを作成する方法と、ブラウザは、ホスト名が一致している限り、要求が実際にどこで実行されるかは考慮しません。既にフロントエンドのApache Webサーバーをお持ちの場合は、それほど難しくありません。

もう1つの方法は、AJASTです。これは、スクリプトタグをドキュメントに挿入することによって機能します。私はこれがGoogle APIの仕組みだと信じています。 http://code.google.com/p/browsersec/wiki/Part2

+0

ありがとう:

あなたはここに同一生成元ポリシーの適切な説明を見つけることができます!これは多くの助けとなりました.AJASTは素晴らしい選択肢のように見えます。 –

+0

FWIWでは、IEは一般的にポートを気にしません。 http://blogs.msdn.com/ieinternals/archive/2009/07/23/The-IE8-Native-XMLHttpRequest-Object.aspx – EricLaw

+3

IPアドレスがまったく問題ではないことにも言及する価値があります。 - 原点を決定するプロトコール/スキーム、ホスト、および(場合によっては)ポートのみです。つまり、同じIP *から提供された2つの異なる発信元が通信できないことがあり、同じ発信元が複数のIPにまたがってロードバランサ*が通信できる可能性があることを意味します。 – EricLaw

1

ホスト名が異なるため、これは機能しません。 2つのページは、同じホスト、プロトコル、およびポートを持つ場合、同じ起点からのものと見なされます。

the same origin policy上のウィキペディアから

:用語「原点」 ドメイン名を使用して定義され

、アプリケーション層 プロトコル、および(ほとんどのブラウザで) スクリプトを実行しているHTMLドキュメントのTCP ポート。 2つのリソースは、 が同じ起点であるとみなされ、これらの値がまったく同じ の場合は、 のみとなります。

関連する問題