【发布时间】:2016-08-23 10:54:20
【问题描述】:
我为第三方服务设置了一个代理,目前看起来像这样:
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 标头添加到请求中,并且它似乎正在工作,因为console.log 打印出'my.domain.com' 但是请求失败并且我从服务返回的错误是403未经授权引用Referer标题。当我在检查器工具中检查网络时,我的引用显示为 localhost。
我正在 Postman api 客户端 (https://www.getpostman.com) 中通过将 Referer 设置为我的白名单域进行测试,它可以工作。我不确定为什么它使用 localhost 和 express。
【问题讨论】:
-
尝试添加协议
http://my.domain.com -
@mplungjan 这只是一个示例,我将其设置为我的实际域。你能扩展协议建议吗?作为前置 http 或 https 的作品
-
也许该服务只允许某些域
-
@mplungjan 确实我正在 Postman api 客户端 (getpostman.com) 中通过将 Referer 设置为我的白名单域来测试它,它可以工作。
标签: javascript node.js api express request