Weblogic: кука не устанавливается в jsp, если запрос идёт во вложенную директорию
Здравствуйте!
Натолкнулся на интересный случай и не могу найти объяснение.
index.jsp
<script src="cookie.js"></script>
<script>
setInterval(function () {
console.log( docCookies.getItem("some_name") )
}, 1000);
</script>
<form action="test.jsp" method="POST">
<button>click</button>
</form>
cookie.js - скрипт отсюда https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie
test.jsp
<%
response.setHeader("Content-Disposition", "attachment;filename=test.txt");
response.setContentType("application/octet-stream");
response.setCharacterEncoding("UTF-8");
response.addCookie(new Cookie("some_name", "some_value"));
out.print("my out");
%>
В данном примере кука ставится, но если поместить test.jsp
во вложенную директорию и запросить её оттуда (заменить в форме action="test.jsp"
, например, на action="jsp/test.jsp"
и положить в каталог jsp файл test.jsp
), то нет.
Как это можно объяснить?
Спасибо!
P.S. Удалось найти решение самому, думаю, многим пригодится, всё дело в указании пути, по которому кука доступна, у меня кука была доступна по пути jsp/test.jsp
, а страница, которая запрашивала, находится в корневом каталоге.
<%
response.setHeader("Content-Disposition", "attachment;filename=test.xml");
response.setContentType("application/octet-stream");
response.setCharacterEncoding("UTF-8");
Cookie cookie = new Cookie("some_name", "some_value");
cookie.setPath("/");
response.addCookie(cookie);
out.print("my out");
%>
Источник: Stack Overflow на русском