页面无刷新下载文件
参考原址:http://langgufu.iteye.com/blog/2076373
1.使用ajax,ajax的返回值类型是json,text,html,xml类型,或者可以说ajax的发送,接受都只能是string字符串,不能流类型,所以无法实现文件下载,强用会出现response冲突。
如果非要使用ajax的话,只能通过返回值得到生成的文件相关url。然后在回调函数里通过创建一个iframe,并设置其src值为文件url,或者一个对文件生成流的处理url,这样操作来实现文件下载且页面无刷新。
2.不使用ajax,通过dom动态操作或创建 iframe,form的方式来实现,在下载文件的同时实现页面不刷新,其中iframe的src可以是文件地址url来直接下载文件,也可以是流处理 url通过response流输出下载,form的是流处理url通过response流输出下载,dom动态操作的时候实现文件下载,且页面无刷新。
方法一:使用iframe
<a href = 'javascript:;' onclick = 'downfile(this)' value='filename'>
var url = "/hsb_workreport/downloadFile.do?filename="+filename;
//jQuery版本 function downloadFile(url){ $("body").append($(" <iframe/> ").attr("src",url)); }
//javascript版本 function downloadFile(url){ var iframe = document.createElement("iframe"); document.body.appendChild(iframe); iframe.src =url; }
方法二:
使用a标签
<a href="/project/download.action" target="_blank">点击下载</a>
方法三:
使用location.href属性
function downloadFile(url){ location.href=url; }
方法四:
使用window.open
function downloadFile(url){ window.open(url); }