【发布时间】:2022-01-18 10:02:48
【问题描述】:
我有一个基于 node.js 和 Fastify 的 API。
服务器生成一个 PDF,然后我尝试通过 API 请求将其发送给客户端。然而,我在网络下的 Chrome 中看到的请求将类型显示为 XHR,尽管我已将内容类型设置为:
const fs = require('fs')
const stream = fs.createReadStream('../test.pdf', 'binary')
reply.header('Content-Type', 'application/pdf')
reply.send(stream).type('application/pdf').code(200)
在客户端,我只是发出一个简单的 POST 请求,并假设它是 PDF,浏览器只会下载它。
axios.post('http://127.0.0.1:8080/contract', requestBody)
.then((response: any) => {
setIsSubmitting(false)
})
.catch((error: any) => {
//TODO
});
(另外,我的另一个想法是这实际上是正确的发送方式,即使用fs.createReadStream - 它只是一个静态文件)。
任何想法我在上面做错了什么。
【问题讨论】: