Ошибка добавления заголовков Corse при использовании Django в IIS

У меня есть приложение django, которое размещено в IIS (с пользовательским URL), а его front-end размещен в Angular. Фронт-энд показывает ошибку, связанную с corse, поэтому я попытался решить эту проблему, добавив 'corseheaders' в settings.py моего кода бэкэнда. После этого, когда я попытался получить доступ к API (нажав на URL, размещенный в IIS), в браузере появилась следующая ошибка

Error occurred while reading WSGI handler:

Traceback (most recent call last):
  File "D:\TESTAPP\API\venv\Lib\site-packages\wfastcgi.py", line 791, in main
    env, handler = read_wsgi_handler(response.physical_path)

Ниже приведены изменения, которые я сделал в settings.py моего бэкенда (django). На самом деле я добавил последнюю строку с "corsheaders". если ее удалить, то ошибка исчезает.

ALLOWED_HOSTS = ['*']
CORS_ORIGIN_ALLOW_ALL = True
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'survey_app.apps.SurveyAppConfig'
"corsheaders",
]

Можете ли вы, ребята, пожалуйста, помочь мне.

Фронтенд показывает ошибки, связанные с corse, из-за того, что ваш фронтенд не находится на том же домене, что и ваш Django API/бэкенд, поэтому все ответы Django должны содержать заголовки, связанные с CORS. Эта статья посвящена кросс-оригинальному обмену ресурсами (CORS).

О том, как использовать django-cors-headers для решения междоменных проблем, вы можете узнать из следующих шагов:

1.Установите пакет с помощью pip:

pip install django-cors-headers

2.Добавить "corseheaders" в settings.py:

    INSTALLED_APPS = (
        ……
        'corsheaders',
        ……
    )

3.Добавить промежуточное ПО:

    MIDDLEWARE = [
        ...
        'corsheaders.middleware.CorsMiddleware',
        'django.middleware.common.CommonMiddleware',
        ...
    ]

4.Добавьте следующую конфигурацию в settings.py:

CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
    '*'
)
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)
CORS_ALLOW_HEADERS = (
    'XMLHttpRequest',
    'X_FILENAME',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
    'Pragma',
)

Для более детальной настройки, пожалуйста, обратитесь к официальной документации.

Вернуться на верх