【发布时间】:2016-08-03 20:46:55
【问题描述】:
我有一个控制器动作:
public ActionResult GetReport(List<int> idList)
{
Stream stream = ReportsComponent.GetReports(idList);
return File(stream, "application/pdf");
}
要访问我有 javascript:
$.ajax({
method: "POST",
url: "/Reports/GetReport",
data: { idList : idsList}
})
.then(function(data){
/*Not working*/
var blob=new Blob([data], {type: "application/pdf"});
var fileURL = URL.createObjectURL(blob);
window.open(fileURL);
/*Not working*/
},
function(){
//error
}
);
到目前为止,我收到了(使用无效代码)损坏的 PDF。如何在新的浏览器窗口中显示生成的 PDF?
【问题讨论】:
-
您无法使用 ajax 下载文件。您需要重定向到返回文件的方法。
-
您是否必须发出 POST 请求?如果您将其更改为 GET 请求,那么您就不必担心 ajax。
标签: jquery asp.net ajax asp.net-mvc blob