节点 - 告诉请求的来源

时间:2012-08-09 01:24:34

标签: node.js request

是否可以区分直接来自浏览器中的URL的请求与从远程网页调用的资源之间的区别?

例如,当有人在网络浏览器中直接访问我的网址(http://mywebsite.com中的类型)时,我想提供一个网页,但是当用户通过网页上的网址调用我的应用中的资源时域名(如<img src='http://mywebsite.com' />)然后我想提供不同的内容。

我查看了请求和标题,但无论

,它看起来都一样

2 个答案:

答案 0 :(得分:24)

我认为您正在寻找referer中的request.header字符串。

所以简单的版本看起来像这样:

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

答案 1 :(得分:5)

在中间件中,您必须使用这种方式“req.headers.origin”

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