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

Node.js + Nginx Access-Control-Allow-Origin не работает

У меня есть api, размещенный на api.mysite.com и клиент на client.mysite.com. Теперь от клиента я получаю

XMLHttpRequest не может загрузить http://api.mysite.com/settings/find. Происхождение http://client.mysite.com не допускается Access-Control-Allow-Origin.

API построен на node.js (фреймворк sailsjs), а клиент - на angular.js. Веб-сервер - это nginx машина. Моя конфигурация vhost:

server {
    listen 0.0.0.0:80;
    server_name api.mysite.com;

    location / {
        add_header 'Access-Control-Allow-Origin' 'http://api.mysite.com';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
        add_header 'Access-Control-Allow-Headers' 'X-Requested-With,Accept,Content-Type, Origin';

        proxy_pass         http://127.0.0.1:1337/;
        proxy_redirect     off;

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

Таким образом, в браузере я могу очень хорошо получить доступ к своему API, однако, когда я получаю доступ к нему с клиента, я получаю указанную выше ошибку. Как видите, я добавил соответствующие заголовки в vhost, но все равно получаю ошибку. Есть идеи, что не так?

Решил свою проблему. Заменены

add_header

с участием

proxy_set_header

:)