restify モジュールで作成された REST API があり、クロスオリジンのリソース共有を許可したいと考えています。それを行う最良の方法は何ですか?
質問する
36325 次
14 に答える
66
クロスオリジンヘッダーを設定するには、サーバーを設定する必要があります。組み込みの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-01-24T17:09:40.637 に答える
64
Restify の最新バージョンには、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']
}));
于 2013-03-06T02:49:57.083 に答える
3
私は自分の restify ベースアプリで次のようにします:
//setup cors
restify.CORS.ALLOW_HEADERS.push('accept');
restify.CORS.ALLOW_HEADERS.push('sid');
restify.CORS.ALLOW_HEADERS.push('lang');
restify.CORS.ALLOW_HEADERS.push('origin');
restify.CORS.ALLOW_HEADERS.push('withcredentials');
restify.CORS.ALLOW_HEADERS.push('x-requested-with');
server.use(restify.CORS());
restify.CORS.ALLOW_HEADERS.push メソッドを使用して、必要なヘッダーを最初に restify にプッシュし、次に CORS ミドルウェアを使用して CORS 関数を起動する必要があります。
于 2013-10-06T23:15:04.913 に答える
2
私の場合はこれで十分でした:
var server = restify.createServer();
server.use(restify.fullResponse());
server.get('/foo', respond(req, res, next) {
res.send('bar');
next();
});
またserver.use(restify.CORS());
、機能するためには、呼び出しが呼び出しにserver.use()
先行する必要があるserver.get()
ようです。
于 2013-05-28T17:43:47.650 に答える
0
Restify 7.2.3 バージョンを使用していますが、このコードは非常にうまく機能しました。restify-cors-middleware プラグインをインストールする必要があります。
const corsMiddleware = require('restify-cors-middleware')
const cors = corsMiddleware({
preflightMaxAge: 5, //Optional
origins: ['http://ronnie.botsnbytes.com', 'http://web.myapp.com'],
allowHeaders: ['API-Token'],
exposeHeaders: ['API-Token-Expiry']
})
server.pre(cors.preflight)
server.use(cors.actual)
于 2019-03-20T01:23:39.137 に答える