最近、「XML データ ファイルへのすべての Ajax 呼び出しは、同じドメインから来ている必要があります。そうしないと、リクエストは失敗します。」というステートメントに出くわしました。
質問する
103 次
2 に答える
0
AJAX を開始する Javascript を含むサイトが でホストされているとしsite1.com
ます。
AJAX はfile.xml
、アドレスが であるという名前のファイルを要求しますsite2.com/file.xml
。
このリクエストsite1.com
---> site2.com
2 つが異なるドメインにあるため、同じオリジン ポリシーが無効になります。
これを回避する方法は?
- 最も簡単な解決策は、可能であれば、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 に答える