5

これが私の状況です:

Web サーバー マシン、クライアント マシン、および XMLHttpRequests をリッスンするプログラムを実行する 3 台目のマシンがあります。

クライアントは、クライアント マシンから Web サーバーにアクセスし、いくつかの変更を加えてから、[保存] をクリックします。この時点で、データは Web サーバーと 3 番目のマシンに送り返されています。これらはすべて、Javascript と XMLHttpRequest オブジェクトを使用して行われています。

Web サーバーへの投稿は正常に機能しますが、別の IP/ドメインがあったため、3 番目のマシンへの投稿は機能しません。

どうすればこれを機能させることができますか?クライアント マシン -> 別のドメイン上にあるため、3 番目のマシンは動作しません Web サーバー マシン -> ファイアウォールの問題により、3 番目のマシンは動作しません

どんなアイデアでも大歓迎です!

4

4 に答える 4

3

CORSサーバーに( Cross-Origin Resource Sharing ) を実装できます。

主要なデスクトップ ブラウザーの現在のバージョンはしばらくの間サポートされていましたが、サポートを追加したのは Opera と Explorer 10 が最後です。

ただし、現時点では、CORS がモバイル ブラウザー全体でどの程度広くサポートされているかはわかりません。

于 2012-03-11T11:42:17.107 に答える
3

あなたが実行しているのは、ファイアウォールの問題ではなく、 Same origin policyです。

マシンがトップレベル ドメインを共有している場合、それらの document.domain プロパティを一致するように設定できます。

共通のトップレベル ドメインを共有する 2 つのサイトは、それぞれの document.domain DOM プロパティを現在のホスト名の同じ修飾された右側のフラグメントに相互に設定することにより、「同じホスト」チェックに失敗したにもかかわらず、通信することを選択できます。

それ以外の場合は、リクエストを他のホストにプロキシするように最初のホストをセットアップする必要がある場合があります。

于 2010-06-29T19:46:30.213 に答える
2

iframe ハックを使用することもできます。2 番目のドメインがホストする iframe は、最初のドメインがホストするページでレンダリングでき、iframe のウィンドウ オブジェクトは親ページのコンテキストからアクセスできます。

于 2010-06-29T20:25:03.113 に答える
1

もう 1 つのオプション (確かに少し専門的ですが) は、データが機密でない場合にYQLを使用することです。YQL と JSON-Pを使用して、他のドメインからデータを取得することもできます。

于 2010-06-29T21:44:11.003 に答える