参考:http://stackoverflow.com/questions/16086162/handle-file-download-from-ajax-post
1 $.ajax({ 2 type: "POST", 3 url: url, 4 data: params, 5 success: function(response, status, request) { 6 var disp = request.getResponseHeader('Content-Disposition'); 7 if (disp && disp.search('attachment') != -1) { //判断是否为文件 8 var form = $('<form method="POST" action="' + url + '">'); 9 $.each(params, function(k, v) { 10 form.append($('<input type="hidden" name="' + k + 11 '" value="' + v + '">')); 12 }); 13 $('body').append(form); 14 form.submit(); //自动提交 15 } 16 } 17 });
上面的方法是个技巧,
AJAX发送参数到后台后,后台处理后,传数据到前台,Ajax在success里面构建了一个from表单, 当后台传来的是文件时,自动点击提交按钮,文件就会被下载。