如何使Web服务可用于跨域访问?

xyb*_*rek 5 node.js express

我有这个用Nodejs-Express构建的API:

app.get('/api/v1/:search', function(req, res){
        var response = {}   
        res.contentType('application/json');
                // process req.params['search']
                // build and send response
                res.send(response, response.status_code);
          });
Run Code Online (Sandbox Code Playgroud)

但是,我需要创建一个将位于另一个域的客户端.如何修复此代码,以便可以像JQuery $ .ajax等一样调用它.

evi*_*ery 13

这样的事情应该有效:

//Middleware: Allows cross-domain requests (CORS)
var allowCrossDomain = function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type');

    next();
}

//App config
app.configure(function() {
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.cookieParser());
  app.use(express.session({ secret: 'secret' }));
  app.use(express.methodOverride());
  app.use(allowCrossDomain);
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});
Run Code Online (Sandbox Code Playgroud)