クロスサイトAJAXリクエスト 質問する

クロスサイトAJAXリクエスト 質問する

Web サイトから別のドメインでホストされている REST Web サービスに AJAX リクエストを送信する必要があります。

これは Internet Explorer では問題なく動作しますが、Mozilla や Google Chrome などの他のブラウザでは、はるかに厳しいセキュリティ制限が課せられ、サイト間の AJAX リクエストが禁止されます。

問題は、サイトがホストされているドメインや Web サーバーを制御できないことです。つまり、REST Web サービスは別の場所で実行する必要があり、リダイレクト メカニズムを導入することはできません。

非同期呼び出しを行う JavaScript コードは次のとおりです。

var serviceUrl = "http://myservicedomain";
var payload = "<myRequest><content>Some content</content></myRequest>";
var request = new XMLHttpRequest();
request.open("POST", serviceUrl, true); // <-- This fails in Mozilla Firefox amongst other browsers
request.setRequestHeader("Content-type", "text/xml");
request.send(payload);

Internet Explorer 以外のブラウザでもこれを動作させるにはどうすればよいですか?

ベストアンサー1

多分JSONP助けられる。

注意: メッセージをxmlではなくjsonに変更する必要があります。

編集

flickrやツイッターコールバックなどでJSONPをサポートする

おすすめ記事