0

这没有太多的上下文,因为它确实是一种应该起作用的情况,但它只是没有。

我正在使用马提尼框架。在一个处理程序中,我正在使用这个:

session.Set("deployed", "true")
r.Redirect("/myOtherURL", http.StatusSeeOther)

其中“会话”是传递给处理程序的会话。会话对象。在加载 myOtherURL 的处理程序中,我正在使用 session.Get 但没有返回任何内容。我打印了所有会话内容,并且“已部署”不存在。

什么可能导致这个问题?我可能会错过什么?如果可以的话,我会提供更多的背景信息,但它真的就这么简单。

4

1 回答 1

1

只是为了在将来扩展我的评论/帮助其他人:

  • 当您设置没有明确Path值的 cookie 时,cookie 将采用当前路径。
  • Cookie 仅针对该路径和以下路径发送 - 不高于 - 例如

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

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

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

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

请注意,您可能不想为所有路由发送 cookie(这/将是什么) - 所以使用判断。

于 2015-09-10T02:51:23.927 回答