【发布时间】:2021-09-04 10:36:53
【问题描述】:
我想将一个 HTTP 请求重定向到另一个 NodeJS 服务器。
我正在使用res.writeHead 来重定向请求。
代码替代 1:
let headers = Object.assign({},req.headers)
await Object.entries(headers).forEach(async ([header,value]) => {
await res.setHeader(header,value)
})
await res.setHeader('Location',ENV_CONFIG.ENV_US_URL + req.url)
res.writeHead( 307 );
res.end();
代码替代 2:
let headers = Object.assign({},req.headers)
headers['Location'] = ENV_CONFIG.ENV_US_URL + req.url
res.writeHead( 307, {...headers} );
res.end();
代码替代 3:
let headers = Object.assign({},req.headers)
res.writeHead( 307, {'Location': ENV_CONFIG.ENV_US_URL + req.url,...headers} );
res.end();
三种备选方案提供相同的结果。
res headers 在发送到其他 NodeJS 服务器之前确实包含 authorization 标头。
当“新”请求到达另一个 NodeJS 服务器时,authorization 标头丢失
请求标头DO包含authorization标头。
为什么authorization 标头会掉在那里?
顺便说一句。我尝试在某些 custom 标头中设置 authorization header 的值,它也丢失了。
【问题讨论】:
标签: node.js redirect http-headers httprequest response-headers