为何通常请求能够下载文件,Ajax 请求就不能下载

那是由于response缘由,html

通常请求浏览器是会处理服务器输出的 response,web

例如生成png,文件下载等,ajax

ajax请求只是个“字符性”的请求,能够读取到返回的response,但只是读取而已,是没法执行的,说白点就是js没法调用到浏览器的下载处理机制和程序。json

 

 

JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,因此咱们要实现ajax下载,不可以使用相应的ajax函数进行文件下载。但能够用js生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程当中,页面也没有进行刷新。浏览器

var form=$("<form>");//定义一个form表单
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");
form.attr("action","exportData");
var input1=$("<input>");
input1.attr("type","hidden");
input1.attr("name","exportData");
input1.attr("value",(new Date()).getMilliseconds());
$("body").append(form);//将表单放置在web中
form.append(input1);服务器

form.submit();//表单提交app

相关文章
相关标签/搜索