私はNode.jsサーバー上でアプリケーションを実行しています。 CORSは有効になっていますが、POST要求が拒否されています(400, not allowed
)。Originにポート番号が含まれているとCORSは許可されません
POSTMANを使用して同じリクエストを送信する場合は、Origin
からポート番号を削除するだけで問題なく動作します。しかし、要求と送信元の両方のポートが同じであるため、正しく動作するはずです。
これは動作しません:
# Request
Request URL: http://the_address:the_port/etc
Request Method: POST
# Headers
Origin: http://the_address:the_port
これは完全に正常に動作している間:
# Headers
Origin: http://the_address
あなたは、これが壊れた理由のアイデアを持っていますか?同じポートである限り、ポートがOriginにある場合でもCORSは同じ発信元要求を許可しませんか?
PS:webpackとReactも使用していますが、私は間違っていない限り関連しているとは思っていません。
ブラウザが送信する 'Origin'ヘッダを手動で変更することはできません。ブラウザは、リクエストを送信しているフロントエンドのJavaScriptコードの実際の起点となるものに基づいて送信する 'Origin'ヘッダーを設定します。したがって、あなたのコードがリクエストを送信しているURLの起点が、ブラウザが送信する 'Origin'ヘッダの値とまったく同じでない場合、ブラウザは原点交差要求を考慮します。 – sideshowbarker
フロントエンドJavaScriptコードの実際の起点を 'http:// the_address:the_port'から' http:// the_address'に変更する唯一の方法は、 'http:// the_address'からフロントエンドJavaScriptコードを実際に提供することです。そのポート番号としてポート80以外の何かを持つ 'http:// the_address:the_port'からではなく、ポート番号としてポート80を持ちます。 – sideshowbarker
は完全なCORSエラーを表示します。 – Scriptonomy