我使用Chrome浏览器访问两个域:
一切都由nginx提供。
我收到以下错误:
XMLHttpRequest无法加载http://db.localhost:909/matches。 'Access-Control-Allow-Origin'标头包含多个值',*',但只允许一个。因此不允许原点'http://vb.localhost:909'访问。
这是两个服务器块的nginx.conf:
server {
listen 909;
server_name vb.localhost;
location / {
root "\apps\vb-site\UI\dev";
index index.html;
}
}
server {
listen 909;
server_name db.localhost;
add_header Access-Control-Allow-Origin *;
location / {
proxy_pass http://127.0.0.1:1337;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
在sails.js应用程序的config / cors.js文件中,我允许所有域CORS访问:
origin: '*',
在nginx的db.localhost服务器块中添加通配符'*'之前,似乎添加了一个空白域,因为Chrome中的错误是:',*'< - 注意空char,然后是commma,然后是*(通配符)
我在配置中哪里出错了?
答案 0 :(得分:4)
Sails.js在sails.js服务器端处理这个问题。无需在nginx上添加“Access-Control-Allow-Origin *”标头。
server {
listen 909;
server_name db.localhost;
add_header Access-Control-Allow-Origin *; # <-this line not necessary
location / {
proxy_pass http://127.0.0.1:1337;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
这只是添加正确属性的问题 config / cors.js文件,允许所有域访问CORS:
allRoutes: true, // <-this line necessary!