结果不包含饼干
问题描述:
请注意:玩框架新手结果不包含饼干
介绍
我需要使用session()
和/或response().cookies
来传递数据/存储数据。
起初session()
从此问题开始,现在cookies
正在跟随。
问题:
下面给出一个基本的例子代码,我有一个布尔值设定的结果,随后被饼干创建并添加到结果。
上。这里,所述MYPAGE呈现,其中包含一个POST操作到同一控制器内的动作,UserController
在这个新方法中,没有cookies
。这是由
Collection<Http.Cookie> cookies = response().cookies();
的大小0
UserController的证实
//...
Result result;
if(b)
result = ok(myPage.render());
else
result = new MyController().index();
result = result.withCookies(
new Http.Cookie("id", "value", 86400, "", "", true, false, Http.Cookie.SameSite.LAX),
new Http.Cookie("id_2", "value_2", 3600, "", "", true, false, Http.Cookie.SameSite.LAX)
);
return result;
//...
问:
的documentation状态,一个session()
持续,而在浏览器窗口的整个持续时间开了。
当网页加载时,Cookie被存储在客户端并加载,会话被视为一堆cookie。
为什么要设置session()
条目或添加cookies()
如上所示,被清除,即在response()
中没有可用的cookie?
我能找什么,什么会删除session()
或cookie
条目?
答
好没有秘密的答案...
这不是在问题显示,但饼干name
或id
可能会包含空格。这是我的问题。在name
/id
删除空格(值可能有空格),
那么问题就解决了
后,我会通过看,如果客户得到的cookie或无法启动。使用Web检查器或卷曲来查看服务器发送的响应是否包含预期的Cookie,然后从那里开始。 –
@FredericA。嗨,谢谢你的回应。我不确定Google Chrome的对象检查器是否符合“网络检查器”的要求,但在使用此对象检查器时,我找不到任何会话或cookie字符串,导致我认为我做错了某些事情或者使用'session()'和'饼干'不正确,以某种方式。 – KGCybeX
查看播放的来源,我不确定您创建Cookie的方式是否正确,尤其是路径和域名。尝试使用'Http.Cookie.builder(“name”,“value).withXXX .... build()'不要使用空字符串调用'.withPath'或'.withDomain'来构建cookie! –