那是因为response原因,
一般请求浏览器是会处理服务器输出的 response,
例如生成png,文件下载等,
ajax请求只是个“字符性”的请求,可以读取到返回的response,但只是读取而已,是无法执行的,说白点就是js无法调用到浏览器的下载处理机制和程序。
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();//表单提交
posted on 2016-03-29 11:48 阅读( ...) 评论( ...)