CORS具有多个域的凭据和白名单

时间:2017-05-12 16:27:52

标签: dns cors whitelist

我正在尝试启用CORS以允许多个域的白名单,上传图像并使用GET使用res.sendFile检索图像。

这些都基于我的CORS设置独立工作,但我不能让它们全部一起工作。

我正在使用ubuntu,nginx,nodejs。

这适用于多域白名单和上传:

var whitelist = ['http://localhost:8100', 'https://somedomain.com'];
var corsOptions = {
origin: function (origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
  callback(null, true)
} else {
  callback(new Error('Not allowed by CORS'))
}
app.use(cors(corsOptions));

但是当使用GET使用sendFile检索图像时,这会失败。

当我像这样设置CORS时,使用GET检索图像:

app.use(cors({credentials: true, origin: 'http://localhost:8100'}));

app.use(cors({credentials: true, origin: 'https://somedomain.com'}));

但这不允许多个域。

我尝试将以下内容添加到corsOptions:

methods: 'GET,PUT,POST',
credentials: true,

那不起作用。

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

好的,这似乎有效,但我会建议更好的方法 - 如果有的话。

var whitelist = ['http://localhost:8100', 'https://somedomain.com'];
app.use(cors({credentials: true, origin: whitelist }));

感谢。