Django настроек для разработчиков с учетными данными - PullRequest
0 голосов
/ 10 апреля 2020

Я борюсь с настройками django -cors-headers для своей среды разработки. Я запрашиваю API django из клиентского приложения React, используя axios с withCredentials, установленным на true. Использование withCredentials подразумевает, что заголовок ответа Access-Control-Allow-Origin не может быть установлен на *. И вот странная вещь: в моем settings.py у меня есть:

CORS_ORIGIN_ALLOW_ALL = False # should be useless while a whitelist is set, but still...
CORS_ORIGIN_WHITELIST = ['http://localhost:3000']

Я могу проверить, что значение Access-Control-Allow-Origin действительно http://localhost:3000, если я напишу простое промежуточное ПО и напечатаю заголовок:

class LocalSettingsMiddleware(MiddlewareMixin):
    def process_response(self, request, response):
        print(response['Access-Control-Allow-Origin'])
        return response

>>> Django version 3.0.5, using settings 'mydjangoapp.settings'
>>> Starting development server at http://127.0.0.1:8000/
>>> Quit the server with CONTROL-C.
>>> http://localhost:3000
>>> [10/Apr/2020 19:54:02] "OPTIONS /authent/token/obtain/ HTTP/1.1" 200 0

Но на стороне клиента предварительный запрос не выполняется, и я получаю следующую ошибку CORS:

The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'.

На рабочем сервере все работает нормально, кажется, что проблема происходят только когда localhost установлен в белом списке cors.

...