第一篇文章来源: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