我有一个管理员控制面板,其中管理员用户可以设置几个选项,然后单击按钮运行报告。该报告应该向用户返回CSV文件下载提示。AngularJS CSV文件从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请求(自定义标头)启动文件下载提示?
这似乎是合理的,但你有一个小提琴或要点为例吗?或者你可以用脚本更新答案?谢谢 –
感谢哈珀的回应。下午,请在Harper后面找到下面的一段代码,它像一个魅力! 鉴于:在控制器 ,假设其余的服务返回一个对象与部件称为其中包含CSV原始数据的数据: $ scope.exportToCsv =()的函数ReportAction.runFullReport($ scope.filterCriteria)。$ promise.then(function(result){blobb = new Blob([result.data],{type:“text/plain; charset = utf-8”}} ); saveAs(blob,“report.csv”); }),function(){ console.log('error'); }; }; –