0

我想这个问题很蹩脚,但我实际上在发布之前尝试了一切。关于 SO 的所有问题都没有得到解答。

我的代码如下:

@csrf_protect
def login_view(request):
    if request.method == "GET":
        return HttpResponse(json.dumps(
                   {'username':request.user.username}
               ), mimetype='application/json')

在提供此视图时, Django 需要Set-Cookie在响应中添加标头,但事实并非如此。在我从该csrftoken视图获得响应后,cookie 不存在,并且不在标题中。CSRFMiddleware正在运行并适用于网站的其他部分。如何让 Django 设置 cookie?

请帮忙!

4

1 回答 1

0

Django 在返回 json 数据时并没有将 cookie 值设置为响应头,因此您需要手动在响应对象中设置 cookie 值。像这样的代码:

@csrf_protect
def login_view(request):
    if request.method == "GET":
        response =  HttpResponse(json.dumps(
                   {'username':request.user.username}
               ), mimetype='application/json')

        response.set_cookie('hello','world')
        return response
于 2013-10-12T14:20:58.617 回答