我正在尝试启用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,
那不起作用。
任何建议表示赞赏。
答案 0 :(得分:0)
好的,这似乎有效,但我会建议更好的方法 - 如果有的话。
var whitelist = ['http://localhost:8100', 'https://somedomain.com'];
app.use(cors({credentials: true, origin: whitelist }));
感谢。