为什么远程服务器响应在获取请求后不包含 nodejs 上的 x-csrf-token?
Why does a remote's server response does not contain an x-csrf-token on nodejs after fetch request?
我正在使用 nodejs 和请求插件 (https://github.com/request/request) 创建代理。
路由一切正常,但我的代理应该转发到的服务器之一需要 CSRF 令牌。
问题是,正在发送获取请求,但服务器响应不包含 x-csrf-token。
请求插件好像是"swalling"这个字段。我的意思是,这不是空洞的回应,不是。 header 甚至不包含该字段。
由于某些原因,我必须使用请求插件。所以切换插件是没有帮助的。
关于导致此问题的原因有什么想法吗?
更新(示例代码)
app.use(sIncoming, function (req, res, next) {
options = {
'url': sDestination + req.url,
'ca': cas,
'jar': true,// enable cookies,
'strictSSL': true,
'headers': {
accept: '*/*'
}
};
request(options, function (err, response, body) {
if (err) onsole.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);
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 和请求插件 (https://github.com/request/request) 创建代理。 路由一切正常,但我的代理应该转发到的服务器之一需要 CSRF 令牌。 问题是,正在发送获取请求,但服务器响应不包含 x-csrf-token。 请求插件好像是"swalling"这个字段。我的意思是,这不是空洞的回应,不是。 header 甚至不包含该字段。
由于某些原因,我必须使用请求插件。所以切换插件是没有帮助的。 关于导致此问题的原因有什么想法吗?
更新(示例代码)
app.use(sIncoming, function (req, res, next) {
options = {
'url': sDestination + req.url,
'ca': cas,
'jar': true,// enable cookies,
'strictSSL': true,
'headers': {
accept: '*/*'
}
};
request(options, function (err, response, body) {
if (err) onsole.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);
req.pipe(request(options, function (err, response, body) {
if (err) {
return console.error('upload failed:', err);
}
}), {end: (req.method === "GET" ? true : false)}).pipe(res);
做到了