Nginx - даже после добавления директивы 'access access allow origin' ошибка журнала регистрации запросов
Я пытаюсь запустить nginx напротив моего приложения nodejs (я использую Windows-машину)
Мое приложение NodeJS работает в порту 3000
Я запустил Nginx в порту 8070
Когда я пытаюсь нажать http://localhost:8070/ из браузера, появляется проблема, указанная ниже
Это моя конфигурация Nginx
server {
listen 8070;
server_name localhost;
location / {
access_log logs/access.log;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Content-Type,Accept';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_max_temp_file_size 0;
proxy_pass http://my-app/;
proxy_redirect off;
proxy_read_timeout 240s;
}
}
Но все же я получаю следующую ошибку
XMLHttpRequest не может загрузить localhost:3000/my-app/api/engineOptions/get. Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрашиваемом ресурсе отсутствует заголовок "Access-Control-Allow-Origin". Источник ' http://localhost:8070/', следовательно, не имеет доступа.
Я что-то упустил в конфигурации nginx относительно директивы Access-Control-Allow-Origin?
1 ответ
Проблема в том, что ваш JavaScript запрашивает ресурс у localhost:3000
, который является сервером NodeJS, и в ответе на этот запрос нет Access-Control-Allow-Origin
ответ.
Вы должны убедиться, что все запросы, сделанные вашими файлами JS, идут в localhost:8070
твой nginx то есть. Таким образом, все ответы получат правильный заголовок.