Express (node.js) 似乎正在用 application/json 替换我的内容类型



我编写了一个本质上是代理的快速 Web 应用程序路由 - 它将输入流(zip 文件)的内容通过管道传输到服务器响应的输出流中。

我希望浏览器提示用户下载或任何最适合 zip 文件的内容。 但是,当我在浏览器中加载此路由时,输入流的内容(zip 文件的内容)在浏览器窗口中显示为文本,而不是提示下载。 l

这是发送响应的代码:

    res.statusCode = 200;
    res.setHeader ('Content-Length', size);
    res.setHeader ('Content-Type', 'application/zip');
    console.log ("content-type is " + res.header('Content-Type'));
    inputStream.pipe (res); 

上面的控制台.log语句输出"内容类型是应用程序/zip"。

但是,当我在Chrome的网络选项卡中检查请求时,我看到响应的内容类型是"application/json"。 这意味着 express 或其他东西正在覆盖我的内容类型标头,或者可能已经发送了它。

有谁知道是什么在更改我的内容类型,以及如何确保内容类型是我设置的内容类型?

感谢您的任何帮助。

你应该检查中间件的顺序,这真的很棘手,如果它们的顺序正确,可能会把事情搞砸。您可以在连接网页中查看正确的顺序

相关内容

  • 没有找到相关文章

最新更新