[轉]ExtJS中Ajax实现File Download

Ajax的处理都是异步的,所以想实现文件下载这种同步的操作,就比较捉襟见肘。
不过google了一下,找到了一个方法,当然不是完美
主旨就是提交一个request,在server端将文件生成好,然后返回文件名,
client端则在js中隐藏一个frame,将frame的src指向生成的文件(根据返回的文件名)

client:
Ext.Ajax.request({
url: '/csvoutput/',
success: function(r, o) {
obj = Ext.util.JSON.decode(r.responseText);
try {
Ext.destroy(Ext.get('downloadIframe'));
}
catch(e) {}
Ext.DomHelper.append(document.body, {
tag: 'iframe',
id:'downloadIframe',
frameBorder: 0,
width: 0,
height: 0,
css: 'display:none;visibility:hidden;height:0px;',
src: obj.filename
});
},
failure: function(r, o){
},
headers: {
'my-header': 'csvoutput'
},
params: { }
});

server:(django)
result = {}
result['filename'] = filename
result['success'] = True
return HttpResponse(simplejson.dumps(result), mimetype='text/javascript')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值