Поле заголовка запроса access-control-allow-origin не разрешено Access-Control-Allow-Headers в префлайтовом ответе, nginx, django, waitress
Я использую сервер nginx для обслуживания статических файлов React js и сервер waitress для django rest framework с 0.0.0.0:8000 в качестве адреса для обслуживания api. Я использую nginx в качестве обратного прокси для django. Несмотря на то, что я изменил настройки django, чтобы разрешить все оригиналы, и изменил файл nginx conf, чтобы включить заголовки кросс-оригинала и заголовки pre-flight. Я все равно получаю ошибку "Доступ к XMLHttpRequest на 'http://15.295.156.60:8000/core/profile/profile/' из origin 'http://15.295.156.60' был заблокирован политикой CORS: Поле заголовка запроса access-control-allow-origin не разрешено Access-Control-Allow-Headers в префлайт-ответе."
Я попробовал изменить файл nginx conf, чтобы включить заголовки cross origin и pre-flight для обратного прокси django. Изменил настройки django, чтобы разрешить все источники. Я хочу справиться с этой ошибкой "Поле заголовка запроса access-control-allow-origin не разрешено Access-Control-Allow-Headers в префлайтовом ответе." вот мои настройки django "
CORS_ALLOW_ALL_ORIGINS = True
CORS_ORIGIN_WHITELIST = [
'http://192.168.56.1:80',
'http://localhost:3000',
'http://*',
# Add any other origins that you want to allow here
]"
, Вот мой внешний запрос "
const axiosInstance = axios.create({
baseURL: baseURL,
timeout: 5000,
headers: {
Authorization: localStorage.getItem('access_token')
? 'JWT ' + localStorage.getItem('access_token')
: null,
'Content-Type': 'application/json',
accept: 'application/json',
},
});"
, Вот как я настраиваю свой обратный прокси "
location / {
root "C:/Users/Administrator/Desktop/build";
try_files $uri $uri/ /index.html;
}
location /core/ {
# Handle preflight requests (OPTIONS)
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' * always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Content-Length' 0;
add_header 'Content-Type' 'text/plain charset=UTF-8';`your text`
return 204;
}
add_header 'Access-Control-Allow-Origin' * always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
proxy_pass http://15.295.156.60:8000;
}"