0

最近、「XML データ ファイルへのすべての Ajax 呼び出しは、同じドメインから来ている必要があります。そうしないと、リクエストは失敗します。」というステートメントに出くわしました。

4

2 に答える 2

0

AJAX を開始する Javascript を含むサイトが でホストされているとしsite1.comます。

AJAX はfile.xml、アドレスが であるという名前のファイルを要求しますsite2.com/file.xml

このリクエストsite1.com---> site2.com2 つが異なるドメインにあるため、同じオリジン ポリシーが無効になります。

これを回避する方法は?

  • 最も簡単な解決策は、可能であれば、site1.com で file.xml をホストすることですか?
  • site.com/getMeThatAwesomeFileサーバー側のコードを実行してファイルの内容を取得し、それを返すドメインの URL を要求できます。
  • リバース プロキシを使用できるため、site2.com/file.xml実際にはドメイン上の何かに解決されます。
于 2013-06-18T19:19:47.770 に答える
0

JSONP を使用できますが、いくつかの制限があります (「GET」動詞のみが許可され、サーバーからの関数内にデータを配置する必要があります)。最初に JSONP は ajax 呼び出しではなく、スクリプトをダウンロードして jsonp 関数を呼び出し、その関数でデータが渡されます。

たとえば、JSONP を使用する場合は、次のようになります。

<script type='text/javascript' src='cross-domain-url'>jsonpFunction(data)</script> 

サーバーから、jsonpFunction({'name':'abc'}) のような応答を取得する必要があるため、この応答を取得した後、宣言された jsonpFunction が呼び出され、この {'name':'abc を達成できるようになります。 '} 物体。

于 2013-06-18T19:44:40.783 に答える