Заголовок CORS отсутствует, несмотря на то, что он явно добавлен в ответ - PullRequest
0 голосов
/ 02 марта 2020

У меня есть сервер Django, для которого я пытаюсь реализовать сеансы. Все работало нормально, когда неожиданно, на прошлой неделе, запросы на получение начали отклоняться из-за:

Access to fetch at 'http://localhost:8000/<URL> from origin 'http://localhost:3000' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'.

Однако перед отправкой ответа я явно добавляю заголовок:

response =  JsonResponse({"success": True}, status=200)
response['Access-Control-Allow-Credentials'] = True
return response

My settings.py, кажется, настроен правильно, с corsheaders и django.contrib.sessions в INSTALLED_APPS, а также corsheaders.middleware.CorsMiddleware и django.contrib.sessions.middleware.SessionMiddleware в MIDDLEWARE:

Запрос выглядит следующим образом:

...
fetch(query_url, {credentials: 'include'}).then(d => {
  if( d.status === 200 ) {
    <do stuff>
  }
})

Я что-то упустил? Я использую django 2.1 и, к сожалению, сейчас не могу обновить.

1 Ответ

0 голосов
/ 02 марта 2020

Перечитав документацию для пакета CORS Django, я понял, что проблема заключалась в том, что эта конфигурация отсутствовала на моем settings.py:

CORS_ALLOW_CREDENTIALS = True

Очень глупо ошибка. Я оставлю этот вопрос на случай, если кто-то столкнется с той же проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...