CORS не работает в Django, но настройки кажутся правильными ⇐ Python
-
Anonymous
CORS не работает в Django, но настройки кажутся правильными
Я пытаюсь выполнить POST-вызов к Django из веб-интерфейса React Native на разных поддоменах.
Я думал, что настроил CORS правильно, но это не так.
Вот как выглядит мой файл settings.py Django:
CORS_ALLOW_CREDENTIALS = Истина CORS_ALLOW_HEADERS = ['*'] CORS_ALLOWED_ORIGINS = ['https://api.example.com', 'https://example.com', 'https://www.example.com' ] CSRF_TRUSTED_ORIGINS = [ «https://api.example.com», «https://example.com», «https://www.example.com» ] ALLOWED_HOSTS = ["0.0.0.0", "api.example.com", "example.com"] ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ = [ 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', ] INSTALLED_APPS = [ ... 'корсхедеры', ... ] Что именно я здесь делаю не так? Я получаю следующую ошибку:
Доступ к XMLHttpRequest по адресу «https://api.example.com/api/v1/pagescreate/» из источника «https://example.com» заблокирован политикой CORS: нет «Access- Заголовок Control-Allow-Origin присутствует в запрошенном ресурсе. А это мой взгляд на Django:
класс PageCreateView(generics.CreateAPIView): набор запросов = Page.objects.all() сериализатор_класс = сериализатор страницы Что может быть причиной этого? Мне не хватает каких-то настроек в React? Я использую axios для выполнения вызовов, при этом единственным заголовком является "Content-Type": "application/json"
РЕДАКТИРОВАТЬ: Может ли это быть связано с каким-то правилом nginx на моем сервере? Или, может быть, моя конфигурация Kubernetes? Я использую Docker для настройки контейнера и могу легко связать файл Dockerfile или любую информацию из моих настроек Kubernetes
Я пытаюсь выполнить POST-вызов к Django из веб-интерфейса React Native на разных поддоменах.
Я думал, что настроил CORS правильно, но это не так.
Вот как выглядит мой файл settings.py Django:
CORS_ALLOW_CREDENTIALS = Истина CORS_ALLOW_HEADERS = ['*'] CORS_ALLOWED_ORIGINS = ['https://api.example.com', 'https://example.com', 'https://www.example.com' ] CSRF_TRUSTED_ORIGINS = [ «https://api.example.com», «https://example.com», «https://www.example.com» ] ALLOWED_HOSTS = ["0.0.0.0", "api.example.com", "example.com"] ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ = [ 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', ] INSTALLED_APPS = [ ... 'корсхедеры', ... ] Что именно я здесь делаю не так? Я получаю следующую ошибку:
Доступ к XMLHttpRequest по адресу «https://api.example.com/api/v1/pagescreate/» из источника «https://example.com» заблокирован политикой CORS: нет «Access- Заголовок Control-Allow-Origin присутствует в запрошенном ресурсе. А это мой взгляд на Django:
класс PageCreateView(generics.CreateAPIView): набор запросов = Page.objects.all() сериализатор_класс = сериализатор страницы Что может быть причиной этого? Мне не хватает каких-то настроек в React? Я использую axios для выполнения вызовов, при этом единственным заголовком является "Content-Type": "application/json"
РЕДАКТИРОВАТЬ: Может ли это быть связано с каким-то правилом nginx на моем сервере? Или, может быть, моя конфигурация Kubernetes? Я использую Docker для настройки контейнера и могу легко связать файл Dockerfile или любую информацию из моих настроек Kubernetes
Мобильная версия