相关疑难解决方法(0)

django session_key 在每次 ajax 调用中都不同

我有一个 django 应用程序,我只能通过 AJAX 访问它。我的主要问题是我想获得一个与发出请求的特定浏览器实例配对的唯一 ID。

为了尝试这样做,我正在尝试访问session_keydjango 创建的None.

这是我在 Django 中创建 JSON 响应的方法:

def get(self, request, pk, format=None):
    resp_obj = {}
    ...
    resp_obj['csrftoken'] = csrftoken
    # shouldn't need the next two lines, but request.session.session_key is None sometimes
    if not request.session.exists(request.session.session_key):
        request.session.create()
    resp_obj['sessionid'] = request.session.session_key
    return JSONResponse(resp_obj)
Run Code Online (Sandbox Code Playgroud)

当我使用 Postman 发出请求时,session_keyJSON 正文和 cookie 中都通过了请求,但是当我在浏览器中通过 jquery 发出请求时request.session.session_key,它是 None,这就是我添加这些行的原因:

if not request.session.exists(request.session.session_key):
    request.session.create()
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,session_key每次都不一样。

这是我如何进行 AJAX 调用:

if not request.session.exists(request.session.session_key):
    request.session.create()
Run Code Online (Sandbox Code Playgroud)

Django 文档说会话并不总是被创建:

默认情况下,Django …

django ajax jquery django-sessions

4
推荐指数
1
解决办法
2684
查看次数

标签 统计

ajax ×1

django ×1

django-sessions ×1

jquery ×1