У меня есть панель управления администратора, где пользователи admin могут установить несколько параметров, а затем нажать кнопку, чтобы запустить отчет. Отчет должен вернуть пользователю запрос на загрузку файла CSV.AngularJS CSV File Download from API
Я пользуюсь услугами ui-router
и $resource
. Тип заголовков ответов/тип mime устанавливается правильно, но CSV-файл возвращается как текст (без загрузки файла) обработчиком $resource
.
Я попытался создать ссылку для загрузки напрямую, сформировав запрос от $scope
, но, к сожалению, моя схема аутентификации API использует специальный токен заголовка HTTP, и его невозможно отправить в API (который также находится на другом подобласте) с помощью якорного тега, например, как этот:
<a href="http://example.com/admin/report/csv?usertype=1&days=5">Run</a>
есть ли способ, чтобы начать загрузку файла строку, используя запрос XHR (с настраиваемым заголовком)?
Это кажется разумным, но у вас есть скрипка или сущность в качестве примера? или вы можете обновить ответ сценарием? спасибо –
Спасибо Харпер за ваш ответ. PM, пожалуйста, найдите ниже код следующего пост Харпера, который работает как шарм! в виду: в контроллере, предполагая, что сервис остальное возвращает объект с членом под названием данных, которая содержит исходные данные CSV: $ scope.exportToCsv = функция() { ReportAction.runFullReport ($ scope.filterCriteria). $ Prom.then (function (result) { var blob = new Blob ([result.data], {type: "text/plain; charset = utf-8"}) saveAs (blob, "report.csv"); }), function() { console.log ('error'); }; }; –