web-dev-qa-db-ja.com

Node-リクエストの発信元を通知

ブラウザのURLから直接送信されたリクエストと、リモートWebページから呼び出されたリソースの違いを区別することはできますか?

たとえば、誰かがWebブラウザで私のURLに直接アクセスしたとき( http://mywebsite.com と入力)、ユーザーが私のアプリのリソースを呼び出したときに、Webページを提供したいとします。別のドメインからのURLを介して(<img src='http://mywebsite.com' />)それでは、別のコンテンツを提供したいと思います。

リクエストとヘッダーを確認しましたが、関係なく同じように見えます

17
Joe Longstreet

request.headerreferer文字列を探していると思います。

したがって、単純なバージョンは次のようになります。

http.createServer(function (req, res) {
  var ref = req.headers.referer;

  if(ref) {
    // serve special content
  }
  else {
    // serve regular homepage
  }
}).listen(1337, '127.0.0.1');

以下のanuからの入力を反映するように回答を編集しました-refererである必要があります

25
Gates VP

ミドルウェアでは、この方法で「req.headers.Origin」を使用する必要があります

app.use(function(req, res, next) {
    //var Origin=req.headers.Origin
    next();
});
7