我需要在浏览器中下载Excel文件。我在后端使用nodejs,在前端使用纯JavaScript。
我的API端点是“ https://callerid-lookup.herokuapp.com/download”
/download/excel
res.status(200);
var path = './report.xlsx';
fs.readFile(path, function (err, data) {
res.setHeader('Content-disposition', 'attachment; filename=report.xlsx');
res.setHeader('Content-type', 'application/vnd.ms-excel');
console.log('server side1', data);
res.send(data);
});
前端代码如下
$.get("https://callerid-lookup.herokuapp.com/download", {
responseType : 'ArrayBuffer'
},
function (data, status) {
console.log("Data: " + data + "\nStatus: " + status);
var blob = new Blob([data], {
type : 'application/vnd.ms-excel'
});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "report.xlsx";
link.click();
});
我可以看到文件正在下载,但是在第一个单元格中下载的excel文件中只有[Object,Object]。
我尝试在http请求中将'responseType'设置为'arraybuffer / blog',但对我没有任何帮助,我们非常感谢
日志文件:
客户端接收数据:https://www.dropbox.com/s/w46o9gqt7z99bzt/client-response.txt?dl=0
服务器发送数据:https://www.dropbox.com/s/xu7nzelbjbmzjwj/server-response.txt?dl=0
已更新为示例API端点和jquery UI代码