2013-10-12 7 views
0

Я думаю, этот вопрос очень хромой, но я на самом деле пробовал все перед публикацией. На все вопросы, подобные на SO, не отвечают.Django CSRF cookie не установлен при отправке JSON

Мой код выглядит:

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

Джанго нужно добавить Set-Cookie заголовок ответа при обслуживании этой точки зрения, но это не так. Файл cookie csrftoken не существует после получения ответа от этого представления, и это не в заголовках. CSRFMiddleware включен и работает для других частей сайта. Как мне настроить Django для создания файла cookie?

Пожалуйста, помогите!

ответ

0

Django не устанавливает значение cookie для заголовков ответов, когда он возвращает данные json, поэтому вам нужно установить значение 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 
+0

Почему вы не одобрили мое редактирование? он показывает ответ на вопрос 'csrf', который я задавал, - информация, не содержащаяся в этом ответе – martinthenext

+1

@martinthenext Отклонено вчера: CuberChase проверил это вчера: Reject Это изменение неверно или попытка ответить или прокомментировать существующий пост. michaelb958 рассмотрел это вчера: Reject Это изменение неверно или попытка ответить на существующее сообщение или прокомментировать его. dmahapatro рассмотрел это вчера: Утверждение Java Devil рассмотрел это вчера: Reject Это изменение неверно или попытка ответить на существующее сообщение или прокомментировать его. – Yohn

Смежные вопросы