使用node koa代理接口导致Response headers(content-type)改变

新手上路,请多包涵

项目使用koa代理接口,目前使用后端返回文件流导出excel的时候发现koa的代理转发会导致Response headers改变,excel导出显示文件损坏

截屏2021-03-17 下午4.24.11的副本.png 正常Response headers
微信截图_20210317163601.png转发后的Response headers

image.png koa代理转发实现

苦思不得其解,求大神指点

阅读 3.1k
1 个回答

你的 transmitHttp 里面,把不是有 response 么。拿到它,然后 ctx.set 需要的response.headers 就可以了。

function transmitHttp() {
    return new Promise(resolve => {
        resolve({ response, body });
    });
}

// xxxxxxx
const { response, body } = await transmitHttp();
ctx.set('content-type', response.headers['content-type']);

顺便提一下,转发文件流建议用 stream
转发 stream 设置 response.header 可以看我这个:
https://segmentfault.com/q/10...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏