golang martini session.Set 未设置任何值
golang martini session.Set not setting any value
这里没有太多上下文,因为在这种情况下,某些东西确实应该起作用,但实际上却不起作用。
我正在使用马提尼框架。在一个处理程序中,我正在使用这个:
session.Set("deployed", "true")
r.Redirect("/myOtherURL", http.StatusSeeOther)
其中 'session' 是传递给处理程序的 sessions.Session 对象。
在加载 myOtherURL 的处理程序中,我使用 session.Get 但未返回任何内容。我打印了所有会话内容,但 'deployed' 不存在。
是什么导致了这个问题?我可能会错过什么?如果可以的话,我会提供更多背景信息,但实际上就是这么简单。
只是为了在未来扩展我的 comment/help 其他人:
- 当您设置没有显式
Path
值的 cookie 时,cookie 将采用当前路径。
仅针对该路径和以下路径发送 Cookie,而不是以上路径,例如
- 当您第一次通过
session.Set(val, key)
隐式设置时,为 /modules
设置的 Cookie
- Cookie 发送给
/modules
、/modules/all
和 /modules/detail/12
- Cookie 未 发送给
/about
或 /
这可以通过显式设置路径来解决:
var store = sessions.NewCookieStore([]byte("secret123"))
func main() {
store.Options.Path = "/"
...
}
请注意,您可能不想为所有路由发送 cookie(这是 /
会做的)- 所以请自行判断。
这里没有太多上下文,因为在这种情况下,某些东西确实应该起作用,但实际上却不起作用。
我正在使用马提尼框架。在一个处理程序中,我正在使用这个:
session.Set("deployed", "true")
r.Redirect("/myOtherURL", http.StatusSeeOther)
其中 'session' 是传递给处理程序的 sessions.Session 对象。 在加载 myOtherURL 的处理程序中,我使用 session.Get 但未返回任何内容。我打印了所有会话内容,但 'deployed' 不存在。
是什么导致了这个问题?我可能会错过什么?如果可以的话,我会提供更多背景信息,但实际上就是这么简单。
只是为了在未来扩展我的 comment/help 其他人:
- 当您设置没有显式
Path
值的 cookie 时,cookie 将采用当前路径。 仅针对该路径和以下路径发送 Cookie,而不是以上路径,例如
- 当您第一次通过
session.Set(val, key)
隐式设置时,为 - Cookie 发送给
/modules
、/modules/all
和/modules/detail/12
- Cookie 未 发送给
/about
或/
/modules
设置的 Cookie- 当您第一次通过
这可以通过显式设置路径来解决:
var store = sessions.NewCookieStore([]byte("secret123"))
func main() {
store.Options.Path = "/"
...
}
请注意,您可能不想为所有路由发送 cookie(这是 /
会做的)- 所以请自行判断。