我正在尝试下面的代码,但这是创建文件,但不显示内容。我需要任何人的帮助,我做错了什么。
$.ajax({
type: "POST",
async : false,
url: "/searchModel/createPDF",
data:"my_param",
contentType: 'application/octet-stream',
beforeSend:function(){
},
success: function(html) {
/* html value is [37,80,68,75 .........] */
//var file = new Blob([html], {type: 'application/pdf'});
//var fileURL = URL.createObjectURL(file);
//window.open(fileURL);
var blob=new Blob([html],{type: 'application/pdf'});
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="SearchedResults.pdf";
link.click();
}
});
来自服务器的响应在字节数组37,80,68,75中.........
请帮助我,如果数据在字节数组,它将如何转换为pdf。
发布于 2015-10-17 00:36:55
您不能使用AJAX下载文件。这没有意义。您可以发送AJAX请求并在客户机上的成功处理程序中获取文件内容,但是由于明显的安全原因,您不能对其做太多事情。您不能将其保存在客户端计算机上,也没有允许您提示用户将其保存到何处的javascript API。
因此,要下载文件,不要使用AJAX。创建一个指向服务于要下载的文件的服务器端脚本的锚点。
示例:
window.downloadfile = function(e){
window.location = "/searchModel/createPDF?" + "my_param";
}
<a href="#" onclick="downloadfile()">download file</a>
发布于 2015-10-17 14:00:20
是的,你们说的正确并不意味着使用AJAX下载PDF。
window.location = "/searchModel/createPDF?" + "my_param";
足够了,我们只需要从服务器端渲染pdf即可。它是您建议的默认downloadable.Thanks
https://stackoverflow.com/questions/33174880
复制相似问题