2012-01-14 11 views
2

このトピックは前にさまざまなフレーバーで説明されていましたが、私にとってはうまくいくソリューションはまだ見つかりませんでした。私はjQuery 1.7.1を使用しています。

JSONとXMLの両方を返すことができるRESTスタイルのWebサービスがありますが、このプロジェクトではXMLエンドポイントを使用する必要があります。クロスドメインの制限を回避するために、PerlのHTTP :: Proxyを使用して透過的なプロキシを作成しました。このプロキシは、どこからでもHTTP GETクライアントを使って話すことができるので、簡単に機能します。

透過プロキシであるため、クライアント要求に設定されているホストヘッダーに依存します。私のコードは次のようになります。

$.ajax({ 
    type: "GET", 
    crossDomain: true, // not needed I think 
    error: function() { alert('Failed ..'); }, 
    url: "http://www.skiforeningen.no:8080/<remote REST URL>", 
    dataType: "xml", 
    headers: {'Host': 'remote REST host'}, 
    success: parseXml, 
}); 

クロムは非常に明示的である、と言う

ロードできない危険なヘッダー "ホスト"

のXMLHttpRequestを設定することを拒否http://www.skiforeningen.no:8080/sted/Norge/Oslo/Oslo/Skansebakken/varsel.xml。起源http://www.skiforeningen.noは、アクセス制御 - 許可 - 起源

によって許可されていませんが、プロキシとjQueryを使ってHTMLページの両方がホストwww.skiforeningen.noに座っています。

FFは、エラーイベントハンドラがトリガされてから(明らかに)ホストヘッダーの設定も拒否します。

おかげで、

答えて

5

あなたは別のホスト上のXHRリクエストを行うことができませんエラーメッセージがわかりますように、ジュスト。異なるポートとは、異なるホストを意味します。

参照:Can I use XMLHttpRequest on a different port from a script file loaded from that port?

+0

おかげで、私はポート制限を認識していませんでした。私はApacheにポート80でプロキシをさせることで回避することができます –

関連する問題