4

CORS プリフライト リクエストが届いたが、1 つ以上のAccess-Control-Request-*ヘッダーにサポートされていない値が指定されているとします。サーバーはこれをブラウザにどのように伝える必要がありますか?

いくつかの例:

  • ブラウザは でプリフライト リクエストを送信しAccess-Control-Request-Method: PUTますが、サーバーは指定されたリソースに対する PUT リクエストを許可しません。
  • ブラウザはプリフライト リクエストを送信しAccess-Control-Request-Headers: X-PINGOTHERますが、サーバーはそのヘッダーを許可/理解していません。

私が見つけた唯一の手がかりはW3C のドキュメントにあり、プリフライトされた応答に問題がある場合、サーバーは「この要求を終了する」必要があることを示していますが、実際にそれがどのように見えるかはわかりません (サーバーは本当に応答を返さずに接続を終了するはずですか??)。

Access-Control-Allow-*それとも、ブラウザは応答ヘッダーをチェックするだけで何か問題があったことを認識できるため、サーバーは検証を気にする必要はまったくありませんか?

4

1 に答える 1

1

Tomcat の CORS フィルターは、無効な CORS プリフライト リクエストを受信すると 403 レスポンスを返します。

リクエストが無効または許可されていない場合、リクエストは HTTP ステータス コード 403 (Forbidden) で拒否されます。このフィルターによる要求処理を示すフローチャートが利用可能です

確かに、ドキュメントはなぜこれを行うのかを説明していませんが、少なくとも出発点として機能します.

于 2015-11-19T16:46:46.940 に答える