在做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数据

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐