本文主要是介绍post方式下载后台传来的文件(虚拟form),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一篇文章来源:http://www.cnblogs.com/ys-wuhan/p/6599063.html
文章参考:http://stackoverflow.com/questions/16086162/handle-file-download-from-ajax-post
第二篇文章来源:http://blog.csdn.net/wild46cat/article/details/52437554
jquery的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 });
jQuery插件方式:
var DownLoadFile = function (options) { var config = $.extend(true, { method: 'post' }, options); var $iframe = $('<iframe id="down-file-iframe" />'); var $form = $('<form target="down-file-iframe" method="' + config.method + '" />'); $form.attr('action', config.url); for (var key in config.data) { $form.append('<input type="hidden" name="' + key + '" value="' + config.data[key] + '" />'); } $iframe.append($form); $(document.body).append($iframe); $form[0].submit(); $iframe.remove();
};
调用方式:
var data ={ filename:"testtest", ExcelData:jsonString }; DownLoadFile({url:BASE_URL + 'downloadFile/download',data:data});
据说后面的方法在IE8中会报错,因为没有嵌套ifream
这篇关于post方式下载后台传来的文件(虚拟form)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!