当返回 "JsonResponse" 时,为 ajax 请求设置 cookie

Set cookies for ajax request, when "JsonResponse" is returned

当我使用正常(不是 ajax)请求时,我会:

from django.shortcuts import redirect
from django.http import JsonResponse

response = redirect('/some_page')
response.set_cookie(key='key1', value='value1', max_age=3600) 
response.set_cookie(key='key2', value='value2', max_age=3600) 
return response

它有效并且设置了 cookie。

不过,当我使用 ajax 请求时,我的观点 returns 类似于:

return JsonResponse({'res': 'success'})

我不知道,当返回 JsonResponse 时,如何设置 cookie?

redirect('/some_page') 返回一个 HttpResponse and JsonResponseHttpResponse 的子类。

所以,你也可以在这里使用相同的set_cookie(...)方法

def sample_view(request):
    response = JsonResponse({"foo": "bar"})
    <b>response.set_cookie(key='key1', value='value1', max_age=3600)</b>
    return response