post请求下载excel文档解决方法

来源:互联网 发布:雅思在线模拟考试软件 编辑:程序博客网 时间:2024/06/18 09:03

post请求无法直接发送请求下载excel文档,是因为我们在后台改变了响应头的内容:
Content-Type: application/vnd.ms-excel
导致post请求无法识别这种消息头,导致无法直接下载。

解决方法:
改成使用form表单提交方式即可

/*===================post请求下载文件 * options:{ * url:'',  //下载地址 * data:{name:value}, //要发送的数据 * method:'post' * } */var postDownLoadFile = 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();}//导出$("#btnExport_year").on('click',        function() {          var param={};          postDownLoadFile({            url:path + '/monthlyCollection/exportExcelDoc.json',            data:param,            method:'post'          });        });

参数直接放到param中就可以带到后台了,

后台再用request.getParameterNames(); 即可接受到参数

0 0
原创粉丝点击