我有一个用restify模块创建的REST api,我想要允许跨域资源共享。做这件事最好的方法是什么?
发布于 2013-01-25 01:09:41
您必须设置服务器才能设置跨域头部。不确定是否有内置的use函数,所以我写了自己的函数。
server.use(
function crossOrigin(req,res,next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
return next();
}
);我在这篇教程中找到了这个。http://backbonetutorials.com/nodejs-restify-mongodb-mongoose/
发布于 2013-03-06 10:49:57
最新版本的Restify提供了a plugin to handle CORS。
所以你现在可以像这样使用它:
server.use(restify.CORS({
// Defaults to ['*'].
origins: ['https://foo.com', 'http://bar.com', 'http://baz.com:8081'],
// Defaults to false.
credentials: true,
// Sets expose-headers.
headers: ['x-foo']
}));发布于 2014-10-08 16:59:48
这对我来说很有效:
var restify = require('restify');
var server = restify.createServer();
server.use(restify.CORS());
server.opts(/.*/, function (req,res,next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", req.header("Access-Control-Request-Method"));
res.header("Access-Control-Allow-Headers", req.header("Access-Control-Request-Headers"));
res.send(200);
return next();
});
server.get('/test', function (req,res,next) {
res.send({
status: "ok"
});
return next();
});
server.listen(3000, function () {
console.log('%s listening at %s', server.name, server.url);
});https://stackoverflow.com/questions/14338683
复制相似问题