0

しばらく問題に悩まされており、これに対する最善の解決策はまだ得られていません。サーバーにある「http://localhost:8080」というjavascriptから別のサーバー「http://localhost:9090」にxmlhttprequest(POST)を呼び出しています

ブラウザエラーの取得 以下に記載されているように: 例外... "コンポーネントが失敗コードを返しました: 0x80004005 (NS_ERROR_FAILURE)" nsresult: "0x80004005 (NS_ERROR_FAILURE)" エラーも特定のものを指していません。同じサーバーから呼び出して同じことをテストし、正常に動作しました。しかし、私は 2 つのサーバー アーキテクチャを見ています。

解決策/アイデアはありますか?クロスドメインオリジンを「*」として応答ヘッダーを設定することに関する投稿はほとんど見ませんでしたが、xmlhhtprequest 呼び出しの応答ヘッダーを設定する方法が正確にわかりませんか?

4

1 に答える 1

0

通信しようとしているエンティティの発信元は、ホスト部分では同じですが、ポート部分 (localhost:8080 <-> localhost:9090) では異なるため、これは同じ発信元ポリシーに違反し、ブラウザーはエラーをスローします。詳細については、http: //en.wikipedia.org/wiki/Same_origin_policyを参照してください。

これを回避する方法は、サーバーから返される HTTP 応答で CORS ヘッダーを使用することです。XHR を使用して HTTP リクエストを生成しているという事実は、違いはありません。基本的には、への POST リクエストに対する応答にAccess-Control-Allow-Origin: *またはを追加する必要があります。もちろん、これは、応答ヘッダーを変更できるように、POST 先のサーバー リソースを制御できることを前提としています。詳細については、http: //enable-cors.org/およびhttp://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharingを参照してください。Access-Control-Allow-Origin: http://localhost:8080http://localhost:9090

于 2012-09-17T18:59:54.447 に答える