我猜这个问题非常蹩脚,但我确实在发布前尝试过所有内容。关于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?
请帮忙!
答案 0 :(得分: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