Internet Explorer Cookie из ответа не перезаписывает существующие Cookies - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть клиент-серверное веб-приложение, в котором каждый ответ от Сервера будет содержать Cookie с именем fruitCookie.

Однако 90 раз из 100 на сервере Cookie будетбыть установлен как:

Cookie cookie = new Cookie("fruitCookie", "someRefreshedValue");
cookie.setPath("/");
httpResponse.addCookie(cookie);

, где Cookie равно javax.servlet.http.Cookie.

Но, оставшиеся 10 раз на сервере Cookie будет установлен с конечной точки покояas:

NewCookie fruitCokie = new NewCookie("fruitCookie", "someRefreshedValue", "/", "", "", -1, false);
return Response.ok().cacheControl(ResourceCache.NO_CACHE).cookie(fruitCookie).build();

где NewCookie javax.ws.rs.core.NewCookie.

На стороне клиента я читаю cookie с помощью dojo как:

getCookieValue: function (cookieName) {
        return cookie(cookieName); // cookieName is fruitCookie
},

Это прекрасно работает вChrome.И последнее значение Cookie из http way или Rest читается в функции выше.

Однако в IE это не работает.Если вызов rest отправляет Cookie, я вижу новый Cookie в ответе на консоли разработчика, однако, приведенный выше вызов продолжает возвращать старое значение уже в браузере и часть отправленного запроса.

Я не уверен, как это вызывает браузер IE, или это связано с Path и Domain, или это так, как работает виджет cookie dojo.

Как я могу решитьэтот вопрос?

1 Ответ

0 голосов
/ 14 февраля 2019

Судя по всему, IE очень заботится о Домене.

Таким образом, изменение следующего

NewCookie fruitCokie = new NewCookie("fruitCookie", "someRefreshedValue", "/", "", "", -1, false);

на

NewCookie fruitCokie = new NewCookie("fruitCookie", "someRefreshedValue", "/", httpRequest.getServerName(), "", -1, false); 

сработало, как и ожидалось.

Где мы можем получить httpRequest внутри Restas:

@GET
@Path("myPath")
public Response myRestEndPoint(@Context HttpServletRequest httpRequest) {

Примечание: это не будет работать на "localhost".Пожалуйста, обратитесь: Заголовок Set-Cookie не устанавливает cookie в Internet Explorer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...