У меня есть 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
:)