NodeJS 服务器 "swallows" header 字段
NodeJS server "swallows" header field
我正在用 nodejs 创建一个代理服务器。
除非需要 CSRF 令牌,否则它工作正常。
当使用请求插件 (https://github.com/request/request) 发出请求时,响应 object 的 header 不会继续 x-csrf-token,即使 req.header object 做了一个 "Fetch".
有什么想法吗?
app.use("/", function (req, res, next) {
options = {
'url': sDestination + req.url,
'ca': cas,
'jar': true,//jar,
'strictSSL': true,
'headers': {
accept: '*/*'
}
};
request(options, function (err, response, body) {
if (err) {
console.error(err);
}
else {
if (typeof req.headers['x-csrf-token'] === "string") {
console.log("#1 " + (typeof req.headers['x-csrf-token'])); // string
console.log("#2 " + (req.headers['x-csrf-token'])); // "Fetch"
console.log("#3 " + (typeof response.headers['x-csrf-token'])); // undefined
}
}
}).pipe(res);
}
也尝试添加此请求header:
"X-Requested-With": "XMLHttpRequest"
在某些(可能不是全部)情况下它可以解决问题
这完成了工作:
req.pipe(request(options, function (err, response, body) {
if (err) {
return console.error('upload failed:', err);
}
}), {end: (req.method === "GET" ? true : false)}).pipe(res);
我正在用 nodejs 创建一个代理服务器。 除非需要 CSRF 令牌,否则它工作正常。
当使用请求插件 (https://github.com/request/request) 发出请求时,响应 object 的 header 不会继续 x-csrf-token,即使 req.header object 做了一个 "Fetch".
有什么想法吗?
app.use("/", function (req, res, next) {
options = {
'url': sDestination + req.url,
'ca': cas,
'jar': true,//jar,
'strictSSL': true,
'headers': {
accept: '*/*'
}
};
request(options, function (err, response, body) {
if (err) {
console.error(err);
}
else {
if (typeof req.headers['x-csrf-token'] === "string") {
console.log("#1 " + (typeof req.headers['x-csrf-token'])); // string
console.log("#2 " + (req.headers['x-csrf-token'])); // "Fetch"
console.log("#3 " + (typeof response.headers['x-csrf-token'])); // undefined
}
}
}).pipe(res);
}
也尝试添加此请求header:
"X-Requested-With": "XMLHttpRequest"
在某些(可能不是全部)情况下它可以解决问题
这完成了工作:
req.pipe(request(options, function (err, response, body) {
if (err) {
return console.error('upload failed:', err);
}
}), {end: (req.method === "GET" ? true : false)}).pipe(res);