gpt4 book ai didi

javascript - 无法使引用 header 正常工作

转载 作者:行者123 更新时间:2023-12-03 06:16:06 25 4
gpt4 key购买 nike

我为第三方服务设置了代理,目前如下所示:

app.use('/service', (req, res) => {
let url = `http://www.service.com/endpoint/${config.POSTCODER_KEY}${req.url}`
req.headers['Referer'] = 'my.domain.com'
console.log(req.headers['Referer'])
req.pipe(request(url)).pipe(res)
})

如您所见,我正在尝试将 Referer header 添加到请求中,并且它似乎正在工作,因为 console.log 打印出 'my.domain.com'但是请求失败,我从服务返回的错误是 403 未经授权引用 Referer header 。当我在检查器工具中检查网络时,我的引用地址显示为 localhost。

我正在 Postman api 客户端 ( https://www.getpostman.com ) 中测试此功能,方法是将 Referer 设置为我的白名单域,并且它有效。我不知道为什么它使用 localhost 和express。

最佳答案

通过管道将流连接在一起仅传输这些流中的数据。 header 不是其中的一部分。当您req.pipe(request(url))时,您只是将请求正文写入代理请求。如果您想设置用于代理请求的 header ,则必须将它们传递给 request,例如:

req.pipe(request({ url: url, headers: req.headers })).pipe(res);

但是,正如 my answer to your previous question 中所述,当代理响应到达时,您还需要在 res 上正确设置 header 。

关于javascript - 无法使引用 header 正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39099199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com