Доступ заблокирован политикой 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')
Сообщите мне о результате в комментариях.