我正在制作一个 Flask Web 应用程序,我尝试在
Flask 存储数据;在我的login
路线我做这样的事情:
session["loginID"] = "the login id"
session["some_data"] = dict()
做一个
print session
显示值设置正确。我的问题如下:在另一个 AJAX 调用中,我尝试检索
some_data
来自 session
的字典, 但是 session
是空的。我试图在 Flask 源代码中查找发生了什么,结果是
request.cookies
我的请求总是空的,所以 open_session
每次返回一个新 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 调用设置 cookie 域。我不知道为什么,但我知道这很重要。
http://flask.pocoo.org/docs/0.10/config/
关于python - flask session : always getting new sessions on requests, request.cookies 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34971310/