Я использую ReactJS на стороне клиента и NODEJS на бэкэнде и nginx в качестве обратного прокси. Мой файл nginx выглядит так.
server{
listen 80;
server_name www.trusting.com;
location / {
proxy_set_header 'Access-Control-Allow-Origin' 'http://localhost:3000';
proxy_set_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
proxy_set_header 'Access-Control-Allow-Headers' 'X-Requested-With,Accept,Content-Type, Origin';
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Даже если подумать, что CORS включен на nginx, я получаю ошибку на стороне ReactJS при выполнении вызовов REST.
Failed to load http://www.trusting.com/hey/signup: Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.
добавьте этот proxy_set_header 'Access-Control-Allow-Origin' '*'; также ссылайтесь на эту ссылку "stackoverflow.com/questions/47488382/…"





Согласно к документации, proxy_set_header прикрепляет заголовок к запросу. Когда это произойдет, запрос еще не поступил в ваше приложение nodeJS.
Что вам нужно сделать, это прикрепить заголовок к ответу. Для этого вам нужно использовать директиву add_header:
server {
listen 80;
server_name www.trusting.com;
location / {
add_header 'Access-Control-Allow-Origin' 'http://localhost:3000' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
add_header 'Access-Control-Allow-Headers' 'X-Requested-With,Accept,Content-Type, Origin' always;
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Думаю, корса в одном месте должно хватить.