【发布时间】:2013-11-13 15:50:13
【问题描述】:
我已经使用 node.js 和 express 构建了一个 API。 但我需要能够将特定路由上的一些请求代理到外部服务器,并将外部服务器的响应显示给执行请求的 clint。
但我还需要转发客户端与请求一起发送的基本身份验证。
我尝试过使用请求模块,例如:
app.get('/c/users/', function(req,res) {
//modify the url in any way you want
var newurl = 'https://www.external.com'
request(newurl).pipe(res),
})
但它似乎没有发送基本的身份验证标头,因为我从外部服务器(www.external.com)得到“403 Forbidden”
我提出的请求是这样的:
GET http://example.se:4000/c/users/ HTTP/1.1
Accept-Encoding: gzip,deflate
X-version: 1
Authorization: Basic bmR4ZHpzNWZweWFpdjdxfG1vcmV1c2*******=
Accept: application/json
Host: example.se:4000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
如果我执行完全相同的请求但直接针对 www.external.com,它会起作用,因此在节点中执行代理时会出现一些问题。
【问题讨论】: