Python Flask会话:总是在请求时获取新会话,request.cookies总是空的

Python Flask会话:总是在请求时获取新会话,request.cookies总是空的,python,cookies,flask,Python,Cookies,Flask,我正在制作一个Flask web应用程序,我尝试在中使用session对象 烧瓶用于存储数据;在我的登录路线中,我执行以下操作: session["loginID"] = "the login id" session["some_data"] = dict() 执行打印会话显示值设置正确 我的问题如下:在另一个AJAX调用中,我尝试检索 来自会话的一些\u数据字典,但会话为空 我试图在Flask源代码中查找发生了什么,结果是request.cookies对于我的请求总是空的,所以open\u

我正在制作一个Flask web应用程序,我尝试在中使用session对象 烧瓶用于存储数据;在我的
登录
路线中,我执行以下操作:

session["loginID"] = "the login id"
session["some_data"] = dict()
执行
打印会话
显示值设置正确

我的问题如下:在另一个AJAX调用中,我尝试检索
来自
会话
的一些\u数据
字典,但
会话
为空

我试图在Flask源代码中查找发生了什么,结果是
request.cookies
对于我的请求总是空的,所以
open\u 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域。我不知道为什么,但我知道这很重要


不,不是那样的。事实证明,在AJAX请求中,凭据必须从web浏览器传递到服务器,否则不会将会话信息发送回Flask;因此,在我的例子中,解决方案是在
fetch()
调用选项中将
凭证设置为
include
。无论如何,谢谢你的帮助。