我的 javascript 代码向我的 node.js 服务器发出以下 AJAX 请求:
var url = '/node/download';
var downloadRequest = new goog.net.XhrIo();
downloadRequest.headers.set('content-type', 'application/json');
downloadRequest.send(url);
我的 node.js 服务器在节点上创建一个 pdf 并通过以下代码将 pdf 流式传输回客户端:
var filestream = fs.createReadStream(pdfpath);
res.writeHead(200, {
'Content-disposition': 'attachment; filename=' + filename,
"Content-Type":"application/pdf","Content-Transfer-Encoding": "binary"});
filestream.on('data', function(chunk) {
res.write(chunk);
});
filestream.on('end', function() {
res.end();
});
但现在我在如何在 javascript 客户端接收此响应时遇到问题,以便打开下载提示以允许用户下载并保存 pdf 文件。
请帮忙!
提前谢谢!
PS Plz 还建议任何更好的方法来实现我的节点代码(如果有的话)
编辑:一种可能的解决方案是像这样发送我的请求:
window.location.assign('/node/download');
这样我得到了下载提示,除了牺牲了产品的异步特性外,一切正常。有没有办法解决这个问题,以便我也可以保持异步性?