ローカルで実行されているサーバーに AJAX リクエストを POST しています。つまり、
xhr.open("POST", "http://localhost:9000/context/request");
xhr.addHeader(someCustomHeaders);
xhr.send(someData);
この JavaScript が実行されているページも localhost:9000 から提供されています。つまり、これは完全に同一オリジンのリクエストのように見えます。
ただし、何らかの理由で、Google Chrome は常に結果のリクエストに Origin ヘッダーを設定するため、サーバーは CORS リクエストであるという誤った仮定に基づいてリクエストをブロックします。
これは Firefox では発生しません。
また、Firefox も Chrome も OPTIONS プリフライト リクエストを送信していないため、混乱を招きます。Origin ヘッダーと Custom ヘッダーがサーバーによって許可されていることを確認するために、最初にプリフライトせずに Origin ヘッダーを設定するのはなぜですか?
この場合、何が起こっているのか知っている人はいますか?CORS 仕様を誤解していませんか?