我使用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);
});
但是,我需要创建一个将位于另一个域的客户端。如何修复此代码,以便可以像JQuery $ .ajax等一样调用它。
答案 0 :(得分: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'));
});
答案 1 :(得分:0)
This可能会对您有所帮助。
虽然我认为JQuery已经开始使用隐藏的iframe支持跨域请求,但我不确定。