3

DELETE リクエストを実行する HTML フォームがあります (method = POST & hidden X-HTTP-Method-Override = DELETE)

DELETE リクエストが成功した場合、ブラウザーに別のページにリダイレクトするように指示するにはどうすればよいですか? 303 + ヘッダーの場所は大丈夫ですか?

現在、ブラウザーは空の応答を表示しませんが、以前の応答を保持します (204 ステータス コードのためだと思います)。ロケーション ヘッダー (ステータス コードは 204 のまま) を追加しても、ロケーションは変更されません。

303+location を使用すると、目的の動作が得られますが、DELETE が成功した後に 303 が有効なステータス コードであるかどうか疑問に思います。202 (Accepted) DELETE はどうですか?

4

1 に答える 1

2

303 プラス ロケーションが最良の選択です。「成功した DELETE」が何を意味するかについて心配する必要はありません。異なるセマンティクスのセットを持つ POST を使用しており、303 はPOST 要求をリダイレクトするために調整されているためです。

10.3.4 303 その他を参照

リクエストへのレスポンスは別の URI で見つけることができ、そのリソースで GET メソッドを使用して取得する必要があります。このメソッドは主に、POST でアクティブ化されたスクリプトの出力がユーザー エージェントを選択したリソースにリダイレクトできるようにするために存在します。新しい URI は、最初に要求されたリソースの代替参照ではありません。303 応答はキャッシュしてはなりませんが、2 番目の (リダイレクトされた) 要求に対する応答はキャッシュ可能かもしれません。

于 2011-04-25T20:29:56.710 に答える