特定のクライアントエラーを検出したときに、セッションCookieを設定しようとしました(実際には、最大年齢を0に設定して削除しました)。私が使用している HTTP 応答は、4xx カテゴリ (401、406 など) のものです。
Cookie の削除は、サーバー側で生成された次の種類の応答で正常に機能します。
Response resp = Response.status(Response.Status.OK).header(
"Set-Cookie",
cookieName+"="+sessionId+"; "+
"Version=1; Max-Age=0; Path=" + cookiePath + "; " +
"Expires=Thu, 01 Jan 1970 00:00:00 GMT").entity("").build();
...しかし、これで失敗します:
Response resp = Response.status(Response.Status.UNAUTHORIZED).header(
"Set-Cookie",
cookieName+"="+sessionId+"; "+
"Version=1; Max-Age=0; Path=" + cookiePath + "; " +
"Expires=Thu, 01 Jan 1970 00:00:00 GMT").entity("").build();
(唯一の違い: 200 => 406)。
4xx 応答で Cookie を設定できないというのは本当ですか?