私たちは、ローカルで実行しているサーバーへのAJAXリクエストを投稿しているの起源ヘッダを付加クロム、すなわち同一生成元の要求
xhr.open("POST", "http://localhost:9000/context/request");
xhr.addHeader(someCustomHeaders);
xhr.send(someData);
このJavaScriptはまた、ローカルホストから提供されている実行されていることのページ:9000、つまり、これは完全に同じ起源要求のように見えます。
しかし、何らかの理由でGoogle Chromeが結果のリクエストにOriginヘッダーを常に設定しているため、サーバーはCORSリクエストであるという誤った仮定に基づいてリクエストをブロックします。
これはFirefoxでは発生しません。
また、FirefoxもChromeもOPTIONSプリフライトリクエストを送信していません。これは混乱します。最初にプリフライトせずにOriginヘッダーを設定して、Originヘッダーとカスタムヘッダーがサーバーで許可されていることを確認するのはなぜですか?
誰でもこの場合に起こっていることを知っていますか? CORSの仕様を誤解していますか?
http://seclab.stanford.edu/websec/csrf/csrf.pptを参照してください。これは、Originヘッダーが同じ起点のPOST要求に適している理由を示しています。これはCSRFの保護メカニズムです。 – user239558