Я получаю некоторые данные CSV из запроса Ajax. Я пытаюсь использовать FileSaver. js (https://github.com/eligrey/FileSaver.js/), чтобы конечный пользователь мог напрямую загрузить эти данные в виде файла CSV.
Это код, используемый в моем обработчике запросов Ajax.
jQuery.post(urlPrefix + "/api/ReportData",
dataToPost,
function (data, status) {
var blob = new Blob([data], { type: "text/csv" });
var fileName = "";
fileName += "Data-Export";
fileName += ".csv";
saveAs(blob, fileName);
});
Этот код вызывается из события нажатия кнопки. Всякий раз, когда код выполняется, открывается новая вкладка, и файл сохраняется без расширения CSV. На самом деле, загруженный файл не имеет расширения вообще. Смотрите прикрепленный скриншот для деталей. (7) связано с тем, что это моя седьмая загрузка.
Фактический сохраненный файл является допустимым файлом. Если я вручную установлю его расширение на csv, я смогу использовать его правильно. Но я хочу знать, как использовать FileSaver для создания соответствующего расширения, а также загрузить файл, не открывая новую вкладку.
Что я уже пробовал
- Экспорт в CSV с использованием jQuery и html