我在从 IE 中的响应中获取 cookie 值时遇到问题。在 Chrome 上,一切正常,我有一个名为 fileDownloadToken
的 token ,我将它设置在我的 Java Controller 中,如下所示:
String tokenValue = value;
response.addCookie(new Cookie("fileDownloadToken",tokenValue);
在我的 JS 中,我只需要一个:
var cookieList = document.cookie;
然后我拆分它来搜索我想要的 cookie。
问题来自 IE,我可以看到它在我的响应 header 中:
但是当我执行 console.log(document.cookie)
时,我看不到它。所以很明显这不是 HttpOnly
的问题,否则我将无法在 Chrome 中看到它。我还尝试使用以下方法在服务器端设置 cookie:
final StringBuilder cookie =
new StringBuilder("fileDownloadToken=" + new StringBuilder(tokenValue) + "; ");
response.addHeader("Set-Cookie", cookie.toString());
但它不适用于 IE(不过也适用于 Chrome)。
我真的不知道现在该尝试什么。提前致谢。
编辑:我的 JS 中有一个定期检查 cookie 的函数:
var fileDownloadCheckTimer;
function checkDownloadToken() {
fileDownloadCheckTimer = window.setInterval(function() {
var cookieValue = getCookie("fileDownloadToken")
if (cookieValue == token)
clearTimer();
}, 2000);
};
最佳答案
可能关心的人,我添加就解决了问题
cookie.addPath("/");
干杯
关于javascript - JEE Servlet/JS : document. cookie 在 Chrome 和 IE 之间不返回相同的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51385979/