将自定义标头添加到“请求”

Posted

技术标签:

【中文标题】将自定义标头添加到“请求”【英文标题】:Add custom headers to 'request' 【发布时间】:2016-11-14 21:48:37 【问题描述】:

我正在通过我的快速配置中的以下设置代理我的 api

  // Proxy api calls
  app.use('/api', function (req, res) 
    let url = config.API_HOST + req.url
    req.pipe(request(url)).pipe(res)
  )

config.API_HOST 在这里解析为我的 api url,req.url 是某个端点,即/users 我尝试在 npm 上为request 遵循文档并像这样设置我的标题

  // Proxy api calls
  app.use('/api', function (req, res) 
    let options = 
      url: config.API_HOST + req.url,
      options:  'mycustomheader': 'test' 
    
    req.pipe(request(options)).pipe(res)
  )

但我无法在网络下的 chrome 开发工具中看到我的自定义标头。

【问题讨论】:

【参考方案1】:

能够以这种方式实现它

  app.use('/api', function (req, res) 
    let url = config.API_HOST + req.ur
    req.headers['someHeader'] = 'someValue'
    req.pipe(request(url)).pipe(res)
  )

【讨论】:

所以当你向/api发出一个get请求时,它会被发送一个带有'someValue'值的'someHeader'标头? 这对我也有用。我尝试使用 res.setHeader 设置标题,但它不起作用。 req['token] = "some_token" 有效。我想知道它是否安全..【参考方案2】:

由于一些奇怪的原因,req.setHeader('someHeader', 'somValue') 对我不起作用。

但是req.headers['someHeader'] = 'someValue' 这行得通

【讨论】:

req 没有“setHeader”功能。 “setHeader”函数仅存在于res 对象上。

以上是关于将自定义标头添加到“请求”的主要内容,如果未能解决你的问题,请参考以下文章

如何以角度将自定义标头添加到httpRequest

如何将自定义响应标头添加到来自 azure blob 的响应?

将自定义标头添加到 AFNetworking,我做错了啥?

php 将自定义CSS文件添加到标头中

将自定义中间件添加到 Laravel Passport 端点

如何在 PowerShell 中运行 appCmd 以将自定义标头添加到默认网站