Resolvi meu próprio problema. Substituído
add_header
com
proxy_set_header
:)
Eu tenho uma API hospedada em api.mysite.com
e um cliente em client.mysite.com
. Agora do cliente eu recebo
XMLHttpRequest cannot load
http://api.mysite.com/settings/find
. Originhttp://client.mysite.com
is not allowed by Access-Control-Allow-Origin.
A API é construída em node.js (estrutura sailsjs) e o cliente em angular.js. O servidor da web é uma máquina nginx . Minha configuração 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;
}
}
Então, no navegador eu posso acessar minha API muito bem, porém quando eu acesso do cliente eu fico acima do erro. Como você pode ver, adicionei cabeçalhos relevantes ao vhost, mas ainda recebo o erro. Alguma idéia do que está errado?