このトピックは前にさまざまなフレーバーで説明されていましたが、私にとってはうまくいくソリューションはまだ見つかりませんでした。私は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は、エラーイベントハンドラがトリガされてから(明らかに)ホストヘッダーの設定も拒否します。
おかげで、
おかげで、私はポート制限を認識していませんでした。私はApacheにポート80でプロキシをさせることで回避することができます –