ajax调用后台实现文件下载,不弹出下载提示框,无法下载

来源:互联网 发布:分类别思维知乎 编辑:程序博客网 时间:2024/05/01 08:58

在做ajax调用后台实现文件下载时,出现了后台返回前端正确数据,但前台就是不提示下载框,且没有下载文件

$.ajax({"url" : urlStr + 'exportFile',"method" : "POST","data" : {"list_str" : json_str},"cache" : false,}).success(function(data) {if (data.ecode && data.ecode == '-1000') {showError(data.emessage);return;} else {showInfo("导出采购需求成功");}}).fail(function(data) {showError(data.emessage);return;});

用上面方法调用后台就会出现上述问题,修改为下面方法:

$.dynamicSubmit = function(url, datas) {var form = $('#dynamicForm');if (form.length <= 0) {form = $("<form>");form.attr('id', 'dynamicForm');form.attr('style', 'display:none');form.attr('target', '');form.attr('method', 'post');$('body').append(form);}form = $('#dynamicForm');form.attr('action', url);form.empty();if (datas && typeof (datas) == 'object') {for ( var item in datas) {var $_input = $('<input>');$_input.attr('type', 'hidden');$_input.attr('name', item);$_input.val(datas[item]);$_input.appendTo(form);}}form.submit();};$.dynamicSubmit(urlStr + 'exportFile', {"list_str" : json_str});

上述方法是利用JQuery动态构建一个form来post,$.dynamicSubmit()方法第一个参数是请求的地址,第二个参数为传后台的json数据

这方法是百度时一位大神回答的,点击打开链接


0 0
原创粉丝点击