从jsreport和angularjs下载报告

我想知道如何从AngularJS应用程序中下载报告?

该报告是一个.xlsx我可以发布的数据,但答复是: 响应

我想要的是可下载的文件,或者在预览中的其他选项卡上打开Excel Online上的.xlsx

我怎么能这样做?

我通常build议创build一个隐藏的表单,并做简单的http提交给jsreport / api / report。 这是最稳定的方式,适用于所有浏览器。

 <form method='POST' target='_blank' action='/api/report' id='jsrForm'> <input hidden='true' name='template[shortid]' value="41ucBgXKe"/> <input hidden='true' name='data[foo]' value="Hello world"/> <input hidden='true' name='options[Content-Disposition]' value="attachment; filename=myreport.pdf"/> </form> <script> document.getElementById("jsrForm").submit(); </script> 

你有反应的控制权吗? 如果是,请将content-disposition标头和MediaType标头添加到响应中:

对于System.Net.Http.HttpResponseMessage

 var response = new HttpResponseMessage{Content = ...........} response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "mydoc.xlsx" }; response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 

对于System.Net.WebClient

 var client = new WebClient(); client.Headers.Add("Content-disposition", "attachment"); client.Headers.Add("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");