是否可以区分直接来自浏览器中的URL的请求与从远程网页调用的资源之间的区别?
例如,当有人在网络浏览器中直接访问我的网址(http://mywebsite.com中的类型)时,我想提供一个网页,但是当用户通过网页上的网址调用我的应用中的资源时域名(如<img src='http://mywebsite.com' />
)然后我想提供不同的内容。
我查看了请求和标题,但无论
,它看起来都一样答案 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();
});