Node.js cors请求 - 异步示例不起作用

时间:2015-03-22 18:23:36

标签: javascript node.js cors

我在应用中使用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);
  });
};

这是模块的问题,还是我实施的错误?

1 个答案:

答案 0 :(得分:0)

您需要导入以下内容: const cors = require('cors')({origin: true});代替const cors = require('cors');