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