没有太多的背景,因为它确实是一种应该有效的情况,但事实并非如此。
我正在使用马提尼框架。在一个处理程序中,我正在使用它:
session.Set("deployed", "true")
r.Redirect("/myOtherURL", http.StatusSeeOther)
其中'session'是传递给处理程序的sessions.Session对象。 在加载myOtherURL的处理程序中,我正在使用session.Get但没有返回任何内容。我打印出所有会话内容,并且“已部署”不存在。
可能导致此问题的原因是什么?我可能错过了什么?如果可以的话,我会给出更多的背景,但它真的很简单。
答案 0 :(得分:1)
只是延伸我的评论/将来帮助其他人:
Path
值的cookie时,cookie会占用当前路径。Cookie仅针对该路径和路径发送 - 不在上面 - 例如
/modules
session.Set(val, key)
设置Cookie
/modules
,/modules/all
和/modules/detail/12
/about
或/
这可以通过明确设置路径来解决:
var store = sessions.NewCookieStore([]byte("secret123"))
func main() {
store.Options.Path = "/"
...
}
请注意,您可能不想为所有路线发送Cookie(这是/
将要执行的操作) - 因此请使用判断。