Назад | Перейти на главную страницу

Nginx - даже после добавления директивы 'контроль доступа разрешить происхождение' запрос регистрирует ошибку

Я пытаюсь запустить nginx перед моим приложением nodejs (я использую машину Windows)

Мое приложение NodeJS работает в порту 3000

Я запустил Nginx на порту 8070

Когда я пытаюсь ударить http: // локальный: 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: // локальный: 8070'поэтому не разрешен доступ.

Мне что-то не хватает в конфигурации nginx относительно директивы Access-Control-Allow-Origin?

Проблема здесь в том, что ваш JavaScript запрашивает ресурс из localhost:3000, который является сервером NodeJS, и в ответе на этот запрос нет Access-Control-Allow-Origin ответ.

Вы должны убедиться, что все запросы ваших JS-файлов идут в localhost:8070, то есть ваш nginx. Таким образом, все ответы получат правильный заголовок.