Erro do token 403 do formulário CSRF do Django 1.9 AJAX - “cookie CSRF não definido”

Eu já vi muito sobre isso no SO, mas nada pode resolver meu problema.

Problema:

Com o middleware CSRF ativado, o Django responde com 403 na solicitação de formulário AJAX, informando:

"Cookie CSRF não definido."

Seguindo odocumentação, foi implementada uma funcionalidade JS, que configura"X-CSRFToken" cabeçalho.

Funciona como esperado, obtém"csrftoken" cookie do navegador e o publica junto com a solicitação AJAX:

x-csrftoken: 1a0u7GCQG0wepZHQNThIXeYpMy2lZOf2

Mas a resposta ainda é 403.

Soluções experimentadas:

Eu tentei tudo o que pude encontrar no SO ou na web, especificamente:

Verificando se o middleware está ativado:

MIDDLEWARE_CLASSES = [
    ...
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    ...
]

Navegadores diferentes com cookies ativados;

Decorando minha vista com@ensure_csrf_cookie;

Configuração{% csrf_token %} no meu modelo;

Usandorender atalho que leva o contexto de solicitação correto;

Definir personalizadoCSRF_COOKIE_NAME eCSRF_HEADER_NAME no meusettings.py;

Configuração explicitamenteCSRF_COOKIE_SECURE = False eCSRF_COOKIE_HTTPONLY = False;

Configuração explicitamenteCSRF_TRUSTED_ORIGINS configuração;

Teste no servidor de desenvolvimento e produção;

Atérequest.META["CSRF_COOKIE_USED"] = True na minha opinião, como alguém sugeriu.

E ainda não conseguiu nada.

Cabeçalhos:

Se eu usar@csrf_exempt eprint(request.META) na minha opinião, é claro que o cabeçalho personalizado"X-CSRFToken" está presente no pedido e formatado de acordo com a documentação do Django, com o prefixo "HTTP_", substituindo hífens por sublinhados, todos em maiúsculas:"HTTP_X_CSRFTOKEN".

Ainda mais, seu valor corresponde ao cookie definido pelo Django.

Biscoitos:

O estranho é que, se eu tentarprint(request.COOKIES) na minha opinião, na página e no formulário, posso ver"csrftoken" cookie lá, mas o dicionário évazio na solicitação AJAX. Pode ser o problema?

Desesperado para descobrir o que está realmente errado. Obrigado por ler isso.

questionAnswers(1)

yourAnswerToTheQuestion