当前位置: 首页 > 面试题库 >

如何在Express.js中获取发起请求的域?

袁弘化
2023-03-14
问题内容

我正在使用express.js,我需要知道发起呼叫的域。这是简单的代码

app.get(
    '/verify_license_key.json',
    function( req, res ) {
        // do something

如何从reqres对象获取域?我的意思是我需要知道api是由somesite.com还是someothersite.com调用的。我试着做两者的console.dir
reqres,但我还是不知道从那里,也可以参考文档,但它给了我没有帮助。


问题答案:

您必须从HOST标题中检索它。

var host = req.get('host');

在HTTP 1.0中是可选的,但在1.1中是必需的。而且,该应用程序始终可以施加自己的要求。

如果这是为了支持跨域请求,则应改用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取决于代理传递的信息。但是,它通常也将出现在标题中。



 类似资料:
  • 所以我在angular js中的工厂服务中发出了一个get请求 当这个请求到达express服务器时,我无法从params对象提取值。 这是我的服务器代码。 第二次尝试将数据发送到 这里id未定义。 情景2。在ng服务中: 设想3. 将$HTTP从get更改为post解决了这个问题,我可以使用Req.Body对象获取值,但我的问题是,如果我不想发出post请求,我只想要get,因为它可以被缓存。

  • OpenResty 最主要的应用场景之一是 API Server,有别于传统 Nginx 的代理转发应用场景,API Server 中心内部有各种复杂的交易流程和判断逻辑,学会高效的与其他 HTTP Server 调用是必备基础。本文将介绍 OpenResty 中两个最常见 HTTP 接口调用方法。 我们先来模拟一个接口场景,一个公共服务专门用来对外提供加了“盐” md5 计算,业务系统调用这个公

  • 我正在构建一个Java的grpc服务器,我很难得到请求头。proto文件是使用Pro buf-maven-plugin编译的,基于生成的存根,我无法访问上下文或请求元数据。 我还尝试在消息请求中定义一个键/值列表,希望grpc能够处理头映射,但目前为止没有成功。 知道我怎么能拿到标题吗? 谢谢 我的原型文件内容: 服务器端实现如下所示: 版本请求。getHeadersCount()始终返回0,尽管

  • 我想创建一个API,为了验证API使用者,我将提供一个API密钥、应用id和应用机密。问题是,我想知道http请求来自哪里,这样我就可以知道发出que请求的主机是否是注册主机。例如:www.someone。com的应用程序id为0001,应用程序机密为1200,api密钥为458。如果此凭据用于发出请求,我想知道请求者是否真的是www.someone。通用域名格式

  • 我用的是Spring靴。我已经为SOAP web服务编写了一个ClientInterceptor,我想记录我要向其发送请求的URL,并且我想在HandlerResponse方法中这样做。然而,我找不到一个方法来做到这一点。有可能吗?任何帮助都会很好。 创建restTemplate的方式

  • jd.request(OBJECT) 发起网络请求。 OBJECT参数说明: 参数名 类型 必填 默认值 说明 url String 是 开发者服务器接口地址 data Object/String/ArrayBuffer 否 请求的参数 header Object 否 设置请求的 header,header 中不能设置 Referer。 method String 否 GET (需大写)有效值: