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 то есть. Таким образом, все ответы получат правильный заголовок.

Другие вопросы по тегам