2011-01-12 15 views
5

のXMLHttpRequestクロスサイトスクリプティングを行うと、ページ自体がホストされているドメインとは異なるドメインのドキュメントへの接続を開くことはできません。XMLHttpRequestを使用して、同じサーバー上の別のポートで別のポート

しかし、異なるポートはどうですか?例えば

私はwebaddressは次のようになり、ポート80でリッスン私のマシン上で実行されているWebサーバを持っている:

http://localhost:80/mypage.html 

と私はAJAXリクエストを処理するために意図されたローカルホスト上で実行されている別のWebサーバを持っていますが、別のポートで待機します。 mypage.htmlのjavascriptは次のようになります:

var xmlhttprequest = new XMLHttpRequest(); 
xmlhttp.open("GET", "http://localhost:1234/?parameters", true); 
xmlhttp.send(); 

この作品はありますか?それともセキュリティ上の例外を与えるでしょうか?

答えて

8

異なるポートを使用することは、実際にはクロスサイトスクリプティングの対象となります。

JSONPを含むよく知られた方法(データを送信することができます)とレスポンス(通常はアンチxssの制約の下ではできないもの)を使用して、ページを使用してデータをロードします。

5

これはまだ実際には別のサーバー(少なくとも管理していない別のサーバーインスタンス)のままではありません。

アクセス制御の許可元:http://yourdomain:1234/をヘッダーに追加して、クロス・ソース・リソース共有用のgoogleを追加することができます。これは新しいものですが、すべてのブラウザがこれについて知っているわけではありません。 jQueryを使用することもできます(詳細はhttp://softwareas.com/cross-domain-communication-with-iframesを参照してください)。

関連する問題