Я просто попробовал настройку (фактически, удаление - с помощью максимального возраста, установленного в 0), cookie сеанса, когда я обнаруживаю конкретную ошибку клиента. Ответ HTTP, который я использую, относится к категории 4xx (например, 401, 406 и т. Д.).Могут ли печеньки быть установлены из ответов 4xx?
Удаление печенье прекрасно работает с такого рода реакции, генерируемой на стороне сервера:
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?
Вы протестировали несколько браузеров? Вы проверили в инструментах разработчика вашего браузера, если на самом деле есть заголовок 'Set-Cookie'? Это может также быть связано с реализацией класса 'Response'. – lanzz