我在应用中使用node-cors模块。我已经按照他们的一些例子提出了一个cors请求。
我有一条路线,我想动态添加cors选项:
var cors = require('cors'),
user = require('../models/user');
router.get('/route', cors(corsOptions), function(req, res) {...}
这可行(这直接来自其中一个示例):
var whitelist = ['http://example1.com', 'http://example2.com'];
var corsOptionsDelegate = function(req, callback){
var corsOptions;
if(whitelist.indexOf(req.header('Origin')) !== -1){
corsOptions = { origin: true, credentials: true }; // reflect (enable) the requested origin in the CORS response
}else{
corsOptions = { origin: false }; // disable CORS for this request
}
callback(null, corsOptions); // callback expects two parameters: error and options
};
然而,不起作用,我不确定是什么问题:
var corsOptions = function(req, callback){
user.findOne({
url: req.header('Origin')
},function(err,match){
var options;
if(!empty(match)){
options = {
origin:true,
credentials: true
};
}else{
options = {
origin: false,
credentials: false
};
}
callback(null, options);
});
};
这是模块的问题,还是我实施的错误?
答案 0 :(得分:0)
您需要导入以下内容:
const cors = require('cors')({origin: true});
代替const cors = require('cors');