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实现页面的无跳转刷新

简单说下ajax

day22

DJANGO和UIKIT结合,作一个有进度条的无刷新上传功能

ajax 快速入门