在做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数据
原文链接:https://blog.csdn.net/qq_33390789/article/details/54907915
文章评论