![Node.js + Nginx Access-Control-Allow-Origin 不起作用](https://linux22.com/image/804338/Node.js%20%2B%20Nginx%20Access-Control-Allow-Origin%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我在 上托管了一个 API api.mysite.com
,在 上有一个客户端client.mysite.com
。现在我从客户端获取
XMLHttpRequest 无法加载
http://api.mysite.com/settings/find
。Accesshttp://client.mysite.com
-Control-Allow-Origin 不允许来源。
API 是基于 node.js(sailsjs 框架)构建的,客户端是基于 angular.js 构建的。Web 服务器是一个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 添加了相关标头,但我仍然收到错误。有什么想法吗?
答案1
解决了我自己的问题。替换
add_header
和
proxy_set_header
:)