将自定义标头添加到“请求”
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
对象上。以上是关于将自定义标头添加到“请求”的主要内容,如果未能解决你的问题,请参考以下文章
如何将自定义响应标头添加到来自 azure blob 的响应?