ajax的无刷新文件下载
Posted 赶路人儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax的无刷新文件下载相关的知识,希望对你有一定的参考价值。
使用ajax,ajax的返回值类型是json,text,html,xml类型,或者可以说ajax的发送,接受都只能是string字符串,不能流类型,所以无法实现文件下载。
1、如果非要使用ajax的话,只能通过在回调函数里获得一个生成文件的相关url,通过创建一个iframe,并设置其src值为文件url,或者一个对文件生成流的处理url,这样操作来实现文件下载且页面无刷新。
eg:
<iframe src="" style="display:none;" id="downFileIframe"></iframe>
$.doAjax(
url:basePath+resultTarget/downExcelTmpl.action,
data:nodes=+$.toJSONString(nodeArray),
callback:function(msg)
if (msg.status == 0)
var url = basePath+"download.action?fileName="+encodeURI(encodeURI(escape("业绩-任务.xls")))+"&filePath="+msg.info;
$(#downFileIframe).attr(src,url);
else
alert(msg.info);
);
2、也可以通过js生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程中,页面也没有进行刷新。
eg:
var form = $("<form>"); //定义一个form表单
form.attr(style,display:none); //在form表单中添加查询参数
form.attr(target,);
form.attr(method,post);
form.attr(action,"exportSms");
var input1 = $(<input>);
input1.attr(type,hidden);
input1.attr(name,exportPostTime);
input1.attr(value,timeString);
$(body).append(form); //将表单放置在web中
form.append(input1); //将查询参数控件提交到表单上
form.submit(); //表单提交
————————————————
以上是关于ajax的无刷新文件下载的主要内容,如果未能解决你的问题,请参考以下文章
Ajax PHP JavaScript MySQL实现简易的无刷新在线聊天室
利用fastjson解析json并通过js&ajax实现页面的无跳转刷新