我有一个成功调用页面的ajax调用本身可以正常工作。单击按钮,然后下载PDF。但是,当我使用相同的请求类型和URL进行AJAX调用时,会返回data
,但不会提示下载。
我的电话:
$("#download-pdf").live('click', function(){
$.ajax({
url: $(this).parents('form').attr('action'),
type: 'POST',
success: function(data){
console.log(data);
}
});
return false;
});
将数据作为未解析的PDF返回。所以我知道那里的信息。它只是不会导致下载。任何技巧?
答案 0 :(得分:3)
强制下载的唯一方法是使用“标准”表单提交方法刷新页面。使用Ajax,您将收到原始输出数据(PDF),并且不会弹出任何保存对话框
答案 1 :(得分:3)
使用AJAX时无法强制下载。
请阅读:Force download a pdf link using javascript/ajax/jquery
如果您只是提交表单,那么您可以通过发送相应的标题告诉浏览器下载文件:
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=file.pdf");
Response.ContentType = "application/pdf";
Response.WriteFile(Server.MapPath(@"~/file.pdf"));
Response.End();