【发布时间】:2017-04-01 14:08:19
【问题描述】:
我正在使用以下列方式返回 cookie 的 Jersey 服务器:
return Response.ok()
.cookie(
new NewCookie(
"userAccessToken", userTokenDTO.getToken(), "/", "",
"what is this", 3600, false
)
).build();
当我调用返回 cookie 的方法时,我在 chrome 中得到以下结果:
我什至可以看到 chrome 已经识别了我的 cookie:
但由于某种原因,它没有在 cookie 选项卡中设置:
我尝试将域都设置为 false、null、“”,在主机文件中创建一个条目,重命名为 127.0.0.1。
return Response.ok()
.cookie(
new NewCookie(
"userAccessToken", userTokenDTO.getToken(), "/", "127.0.0.1",
"what is this", 3600, false)
).build();
适用于 IE 11,但仍不适用于 Chrome 或 Firefox...
我多次尝试为 127.0.0.1 插入另一个主机名。在此示例中,它是 text.myexample.com。它仍然无法在 IE11 以外的任何其他浏览器中运行。
return Response.ok()
.cookie(
new NewCookie(
"userAccessToken", userTokenDTO.getToken(), "/", "test.myexample.com",
"what", 7200, false)
).build();
我尝试在 Google Chrome 的控制台中执行以下操作:
document.cookie = "userAccessToken=72bebbe0-44fd-45ce-a6e1-accb72201eff;Version=1;Comment=what;Domain=test.myexample.com;Path=/;Max-Age=7200"
哪个是Chrome中服务器返回的标头中的cookie。这很好用。我真的不知道这里发生了什么。
【问题讨论】:
-
也许这是相关的:stackoverflow.com/questions/1134290/… 尝试在您的主机文件中为您的应用程序输入一个主机名,例如
127.0.0.1 myapp.local并将其用作主机名。 -
我已经用多个不同的名字尝试过,但没有运气。
-
这只是 localhost 的问题,在其他 url 上效果很好,请参见下面的链接 cookie 有效,但在本地失败 jerseyexample-ravikant.rhcloud.com/rest/jws/say/Hi
标签: java google-chrome cookies jersey