実際にどのように起源を取得しますか? router.get('/', ...)
の下で以下を使用すると、定義されていません。Expressで要求元を取得する
var origin = req.get('origin');
router.get
時にサーバー(app.jsで下
実際にどのように起源を取得しますか? router.get('/', ...)
の下で以下を使用すると、定義されていません。Expressで要求元を取得する
var origin = req.get('origin');
router.get
時にサーバー(app.jsで下
var origin = req.get('Origin')
作品(私はその後、APIに投稿する権利URLパラメータを構築するために、検索キーとして元のドメインを使用しようとしています)この場合)はそのルートの前にres.header("Access-Control-Allow-Origin", <a single allowed domain here (or '*' for any domain)>);
が挿入されています。
リクエストのパスにこのexpressJsミドルウェアを追加します。最初のミドルウェア要求の出会いであることを確認してください。
/*
Creates origin property on request object
*/
app.use(function(req, res, next){
var protocol = req.protocol;
var hostHeaderIndex = req.rawHeaders.indexOf('Host') + 1;
var host = hostHeaderIndex?req.rawHeaders[hostHeaderIndex]:undefined;
Object.defineProperty(req, 'origin', {
get: function(){
if(!host)
return req.headers.referer?req.headers.referer.substring(0, req.headers.referer.length-1):undefined;
else
return protocol + '://' + host;
}
});
next();
});
//ここで、appはエクスプレスアプリまたはエクスプレスルータオブジェクトです。
リクエストを送信中にリクエストヘッダに 'origin'を設定していますか?あなたはreq.hostnameを使用したいと思うかもしれません。 – Nivesh
特定のドメインのみがアクセスするAPIを公開しますか? – Nivesh
'req.host'は私のテストでExpressが動作しているドメインを返します。私は、エクスプレスをホストするドメインへの.ajax呼び出しを行うドメインがアクセスを許可されるようにCORSを許可しようとしており、また検索のハッシュキーです。 – sqldoug