set-cookie头不设置在Internet Explorer中的cookie(Set-Cooki

2019-09-28 03:25发布

我试图使用Set-Cookie头设置cookie的服务器端。

使用的球衣cookie设置服务器端是这样的:

NewCookie cookie  = new NewCookie("token", tokenValue, "/", "", 1, "", 3600, new Date(System.currentTimeMillis() + 3600000), false, false);
return Response.ok()
                .cookie(cookie)
                .build();

在Chrome我的响应头看起来是这样的:

当我尝试发送另一个请求到服务器,以检查cookie被发送回,一切正常。 请求头看起来是这样的:

Firefox和Opera浏览器也表现出相同的行为。 虽然,当我尝试Internet Explorer中,还有另一个故事...

所述第一请求的响应头:

所述第二请求的报头中:

基本上没有请求头,并且cookie不会设置...难道我做错了什么,当我设置cookie? 我试图从其他类似的问题的各种解决方案,但似乎没有任何工作...

编辑:

通过禁用保护模式改变了IE浏览器的Internet选项,并允许所有Cookie,但仍没有...

编辑2:

尝试它在不同的计算机,我得到不同的结果。 在一些电脑它工作正常,并在一些没有。 必须有上的Internet Explorer,我错过了一些设置。 虽然,无论我怎么努力,我不能让它上运行localhost ...

显然,作为dabaicai评论不应该有任何空属性值的Fileds。 当我建立了我的cookie中的domaincomment atrribute了空值:

NewCookie cookie  = new NewCookie("token", tokenValue, "/", "", 1, "", 3600, new Date(System.currentTimeMillis() + 3600000), false, false);

我把它改为:

NewCookie cookie  = new NewCookie("token", tokenValue, "/", httpServletRequest.getServerName(), 1, "no-comment", 3600, new Date(System.currentTimeMillis() + 3600000), false, false);

而现在一切都将按预期在Internet Explorer中呢!

Answer 1:

我想是因为域名的localhost ,你可以尝试访问的URL与127.0.0.1,然后看看结果。



文章来源: Set-Cookie header does not set cookie in Internet Explorer