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

我有用Nodejs-Express构build的这个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); }); 

但是,我需要让一个客户端坐在另一个域上。 如何修复这个代码,以便像JQuery $ .ajax等那样调用它。

像这样的东西应该工作:

 //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')); }); 

这可能对你有帮助。

尽pipe我认为JQuery已经开始使用隐藏的iframe来支持跨域请求,但是我不确定。