ajax实现文件下载

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

你可能感兴趣的:(AJAX)