2
我正在製作Flask Web應用程序,我嘗試使用 Flask中的會話對象來存儲數據;在我login
路線我做這樣的事情:Flask會話:總是在請求上獲得新的會話,request.cookies總是爲空
session["loginID"] = "the login id"
session["some_data"] = dict()
做一個print session
顯示值是否設置正確。
我的問題是:在另一個AJAX調用,我試着找回 some_data
字典從session
,但session
是空的。
我試圖找到會發生什麼,在尋找瓶的源代碼,原來request.cookies
總是空的我的請求,所以open_session
每次返回一個新的會話。
以下是相應的代碼:
def open_session(self, app, request):
s = self.get_signing_serializer(app)
if s is None:
return None
val = request.cookies.get(app.session_cookie_name)
if not val:
return self.session_class()
max_age = total_seconds(app.permanent_session_lifetime)
try:
data = s.loads(val, max_age=max_age)
return self.session_class(data)
except BadSignature:
return self.session_class()
是否有人知道是什麼導致這種行爲?任何幫助將不勝感激。
不,不是這樣。事實證明,憑證必須通過AJAX請求從Web瀏覽器傳遞到服務器,否則會話信息不會發送回Flask;所以在我的情況下,解決方法是在'fetch()'調用選項中將'credentials'設置爲'include'。還是要謝謝你的幫助。 – mguijarr