python - flask session : always getting new sessions on requests, request.cookies 始终为空

标签 python cookies flask

我正在制作一个 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/

相关文章:

python - 如何以root身份运行selenium chromedriver? (即使使用 --no-sandbox 也不起作用

PHP:如何在cookie中存储 session

php - 从表中获取数据并从 while 循环插入到另一个表中

python - React 不读取从 Flask GET 端点返回的 json

python - 使用 mechanize 和 pythonanywhere 获取 "error Tunnel connection failed: 403 Forbidden"

python - 我可以在多进程中启动多线程 flask 吗

python - 如何调试 OverflowError : value too large to convert to int32_t?

python - 如何将 unicode 原始文字解码为可读字符串?

python - 在python中进行正则表达式匹配后获取 token 序列号

php - php 未找到设置的 cookie