Скачать файл Excel в браузере с помощью BLOB - PullRequest
0 голосов
/ 06 июля 2019

У меня есть требование загрузить файл 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, загруженном в первую ячейку, есть только [Объект, Объект].

Я пытался указать responseType как arraybuffer / blog в запросе http, но у меня ничего не получалось, помощь приветствуется

Файл журнала:

клиент получает данные: https://www.dropbox.com/s/w46o9gqt7z99bzt/client-response.txt?dl=0

сервер отправки данных: https://www.dropbox.com/s/xu7nzelbjbmzjwj/server-response.txt?dl=0

Обновлено с примером конечной точки API и кодом пользовательского интерфейса jquery

...