繁体   English   中英

Set-Cookie标头不在Internet Explorer中设置cookie

[英]Set-Cookie header does not set cookie in Internet Explorer

我正在尝试使用Set-Cookie标头设置cookie服务器端。

使用jersey,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时,我做错了什么? 我尝试过其他类似问题的各种解决方案,但似乎没有任何效果......

编辑:

通过禁用保护模式并允许所有cookie更改IE Internet选项,但仍然没有...

在此输入图像描述

编辑2:

在不同的计算机上试用它,我的结果好坏参半。 在某些计算机中它可以正常工作,而在某些计算机中却没有。 我缺少Internet Explorer上必须有的一些设置。 虽然,无论我尝试什么,我都无法让它在localhost上工作......

显然,正如dabaicai评论的那样,不应该有任何空的属性值文件。 当我创建我的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中按预期工作了!

我认为由于域localhost ,您可以尝试访问127.0.0.1的URL,然后查看结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM