没有太多的上下文,因为它确实是一种应该起作用的情况,但事实并非如此。我正在使用马提尼框架。在一个处理程序中,我正在使用这个:session.Set("deployed", "true")r.Redirect("/myOtherURL", http.StatusSeeOther)其中 'session' 是传递给处理程序的 session.Session 对象。在加载 myOtherURL 的处理程序中,我使用 session.Get 但没有返回任何内容。我打印了所有会话内容,但不存在“已部署”。什么可能导致这个问题?我可能会错过什么?如果可以的话,我会提供更多的背景信息,但这真的很简单。
1 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
只是为了在未来扩展我的评论/帮助他人:
当您在没有明确
Path
值的情况下设置 cookie 时,cookie 将采用当前路径。Cookie 仅针对该路径和以下路径发送 - 不在上方 - 例如
/modules
当您第一次通过隐式设置它时设置的Cookiesession.Set(val, key)
发送Cookie是为了
/modules
,/modules/all
并且/modules/detail/12
Cookie不是为了
/about
或/
这可以通过显式设置路径来解决:
var store = sessions.NewCookieStore([]byte("secret123"))
func main() {
store.Options.Path = "/"
...
}
请注意,您可能不想为所有路由发送 cookie(这是/可以做的) - 所以使用判断。
- 1 回答
- 0 关注
- 140 浏览
添加回答
举报
0/150
提交
取消