Если у вас есть CORS_ORIGIN_ALLOW_ALL = True
, это установит Access-Control-Allow-Origin: *
, и, как показывает ошибка, при разрешении всех доменов для перекрестных запросов, вы не можете передать флаг credentials
с запросом. Поэтому, если вы хотите сохранить заголовок как Access-Control-Allow-Origin: *
, проще всего было бы не использовать флаг credentials
при отправке запроса CORS из внешнего интерфейса.
Если вы хотите разрешить только определенные домены(что предпочтительно), вам нужно сначала найти действительные домены. Помните, что эти домены являются исходными доменами, откуда приходят запросы в Django. Вы можете найти их, посмотрев на request.META.REMOTE_HOST
. request.META
- это среда, видимая и передаваемая WSGI, и если между ними есть несколько прокси, это даст вам последний хост в цепочке прокси.
Если у вас есть веб-сервер, который взаимодействует с WSGI, например nginx
, он передаст REMOTE_HOST
вашему приложению Django или любому промежуточному серверу WSGI, который у вас есть (например, uWSGI
/ gunicorn
), и они, в свою очередь, передадут это вашему приложению.
Кроме того, в ваших настройках URL-адреса в CORS_ORIGIN_WHITELIST
имеют неправильный формат;разделитель между схемой и netloc равен ://
, а не //:
, например:
http://127.0.0.1:3000