Доступ заблокирован политикой CORS: Нет 'Access-Control-Allow-Origin'

Я использую следующие версии

  • Python 3.9.6
  • Django 3.2.3
  • django-cors-headers==3.7.0

В моем файле settings.py

есть следующее

CORS_ALLOW_ALL_ORIGINS=True

CORS_ORIGIN_WHITELIST = ('http://localhost:3000',)

По какой-то причине один из вызовов API завершается с этой ошибкой.

Доступ к выборке из источника был заблокирован политикой CORS: На запрашиваемом ресурсе отсутствует заголовок 'Access->Control-Allow-Origin'. Если непрозрачный ответ удовлетворяет >вашим потребностям, установите режим запроса на 'no-cors', чтобы получить ресурс с отключенным CORS.

.

Я не могу понять, почему я получаю эту ошибку.

Вот соответствующие детали запроса и ответа, извлеченные из инструментов разработчика Google Chrome

Общие URL запроса: http://10.0.123.123:8998/api/box?unit=101&box=TOT000000000051345&login_user_id=USERID&reserve_locn=101

Метод запроса: OPTIONS

Код состояния: 200 OK

Адрес удаленного доступа: 10.0.123.123:8998

Политика рефералов: strict-origin-when-cross-origin

Заголовки ответа Access-Control-Allow-Headers: accept, accept-encoding, authorization, content-type, dnt, origin, user-agent, x-csrftoken, x-requested-with

Access-Control-Allow-Methods: DELETE, GET, OPTIONS, PATCH, POST, PUT

Access-Control-Allow-Origin: *

Access-Control-Max-Age: 86400

Соединение: keep-alive

Content-Length: 0

Content-Type: text/html; charset=utf-8

Дата: Tue, 07 Sep 2021 01:15:10 GMT

Сервер: nginx/1.20.1

Варьируется: Origin

Заголовки запроса

OPTIONS /api/box?unit=101&box=TOT000000000051345&login_user_id=USERID&reserve_locn=101 HTTP/1.1

Host: 10.0.123.123:8998

Соединение: keep-alive

Принять: /

Access-Control-Request-Method: GET

Access-Control-Request-Headers: content-type

Origin: http://10.0.123.123:8999

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36

Sec-Fetch-Mode: cors

Референт: http://10.0.123.123:8999/

Accept-Encoding: gzip, deflate

Accept-Language: en-GB,en-US;q=0.9,en;q=0.8

Каждый IP адрес или домен, который вы используете для выполнения запроса к серверу django, должен быть добавлен в settings.py следующим образом:

CORS_ORIGIN_WHITELIST = ('http://localhost:3000','http://10.0.123.123:8998')

Сообщите мне о результате в комментариях.

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