我正在使用express.js,我需要知道发起呼叫的域。这是简单的代码
app.get( '/verify_license_key.json', function( req, res ) { // do something
如何从req或res对象获取域?我的意思是我需要知道api是由somesite.com还是someothersite.com调用的。我试着做两者的console.dir req和res,但我还是不知道从那里,也可以参考文档,但它给了我没有帮助。
req
res
您必须从HOST标题中检索它。
HOST
var host = req.get('host');
在HTTP 1.0中是可选的,但在1.1中是必需的。而且,该应用程序始终可以施加自己的要求。
如果这是为了支持跨域请求,则应改用Origin标头。
Origin
var origin = req.get('origin');
请注意,某些跨域请求需要通过“ 预检 ”请求进行验证:
req.options('/route', function (req, res) { var origin = req.get('origin'); // ... });
如果要查找客户端的IP,可以使用以下方法检索该IP:
var userIP = req.socket.remoteAddress;
message.socket
socket.remoteAddress
请注意,如果您的服务器位于代理之后,则可能会为您提供代理的IP。是否可以获取用户的IP取决于代理传递的信息。但是,它通常也将出现在标题中。