当我检测到特定的客户端错误时,我只是尝试设置(实际上是通过将最大年龄设置为 0 来删除)会话 cookie。我使用的 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)。
cookie 不能用 4xx 响应设置是真的吗?