0
这里没有太多的上下文,因为它确实是某种情况下应该工作,但它没有。golang martini session.Set没有设置任何值
我正在使用马提尼框架。在我使用的一个处理程序中:
session.Set("deployed", "true")
r.Redirect("/myOtherURL", http.StatusSeeOther)
其中'session'是会话传递给处理程序的sessions.Session对象。 在加载myOtherURL的处理程序中,我使用了session.Get,但没有任何内容被返回。我打印出所有会话内容,并且“部署”不存在。
什么可能导致此问题?我可能错过了什么?如果可以的话,我会给出更多的上下文,但它确实如此简单。
你可以发布更多的代码:设置和获取操作的完整处理程序,以及cookie存储的设置代码,包括您设置的任何选项(安全,HttpOnly)。 – elithrar
@elithrar这很难,因为我的功能很大。我注意到,当浏览URL中的路径/模块时,会产生第二个cookie /会话。我可以在谷歌浏览器上的开发工具上看到它。我猜这些单独的会话是我的变量不共享的原因。你知道为什么它会产生第二次会议吗?这听说过吗?对于这个/ modules路由,我不会做任何不同的处理/会话,它和其他的一样,但是由于某些随机的原因,它会创建一个新的会话。 – Conor
您是否设置了Cookie的路径?如果不是,则默认为当前路径 - 例如'/ modules'。如果其他路线处于同一水平或以上,则Cookie不适用。您需要将'session.Options.Path'设置为覆盖两者的路径 - 容易的选择是将其设置为'/'。 – elithrar