Javascript 通过express将pdf发送到js客户端并下载

Javascript 通过express将pdf发送到js客户端并下载,javascript,node.js,express,pdf,Javascript,Node.js,Express,Pdf,我正在尝试使用客户端从我的express服务器发送pdf文件,请求如下: res.setHeader('Content-Type', 'application/pdf'); res.setHeader('Content-Disposition', 'attachment; filename=test.pdf'); fs.createReadStream('test.pdf').pipe(res); 然后在客户端,我试图通过将结果字符串转换为url并从那里下载来下载它 var blo

我正在尝试使用客户端从我的express服务器发送pdf文件,请求如下:

  res.setHeader('Content-Type', 'application/pdf');
  res.setHeader('Content-Disposition', 'attachment; filename=test.pdf');
  fs.createReadStream('test.pdf').pipe(res);
然后在客户端,我试图通过将结果字符串转换为url并从那里下载来下载它

var blob = new Blob[pdfString], { type: 'application/pdf' });
var url = window.URL;
var downloadUrl = url.createObjectURL(blob);

然而,结果文件是两个空页面,我相信这可能是因为结果文件是url太大了?如果有人能找出这里有什么问题,或者告诉我一个更好的方法,那就太棒了。

我能够使用XMlHttpRequest解决这个问题:

   var req = new XMLHttpRequest();
      req.open('GET', path , true);
      req.responseType = "arraybuffer";
      req.onload = (event) => {
        downloadPdf(req.response); //This is where I convert to blob
      }
      req.send();

您是否使用ajax获取二进制数据?这可能会有所帮助:我正在尝试找到一种使用“请求”http的方法client@HaroonKhan谢谢,但我已经设置了服务器端,我正在尝试找出如何在客户端将响应下载为pdf文件我能够使用XmlHttpRequest找到它: