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,而不是以上路径,例如

    1. 当您第一次通过 session.Set(val, key)
    2. 隐式设置时,为 /modules 设置的 Cookie
    3. Cookie 发送给 /modules/modules/all/modules/detail/12
    4. Cookie 发送给 /about/

这可以通过显式设置路径来解决:

var store = sessions.NewCookieStore([]byte("secret123"))

func main() {
    store.Options.Path = "/"
    ...
}

请注意,您可能不想为所有路由发送 cookie(这是 / 会做的)- 所以请自行判断。