我在写动力节点crm项目,自己在写选择导出列表数据(使用poi),但是不能返回页面去下载excel文件

我在写动力节点crm项目,自己在写选择导出列表数据(使用poi),数据都能查找到,但是不能返回页面去下载excel文件,这是为什么?下面是我的js代码

//给 选择导出 添加单击事件
        $("#exportActivityXzBtn").click(function (){
            var checkeds = $("#tbody input[type='checkbox']:checked");
            var ids="";
            $.each(checkeds, function (event, obj){  //每有一个checkedids,就执行一次函数体
                ids += "id=" + $(this).val() + "&";
            })
            ids = ids.substr(0, ids.length-1);

            var onSuccess = function () {
                window.location.href= "workbench/activity/exportSelectActivities.do";
            };

            $.ajax({
                url:'workbench/activity/exportSelectActivities.do',
                data: ids,
                type:'post',
                dataType:'json',
                success: onSuccess,
            });
        });

以下内容来自Chat gpt:
看起来您添加了一个单击事件来导出选择列表数据并下载Excel文件,但是无法返回页面下载文件。这有可能是由于您的AJAX请求在下载文件前已经被发送了。

请尝试下面的代码,该代码不使用AJAX来下载文件,而是使用window.location.href直接下载文件。

$("#exportActivityXzBtn").click(function (){
    var checkeds = $("#tbody input[type='checkbox']:checked");
    var ids = "";
    $.each(checkeds, function (event, obj){
        ids += "id=" + $(this).val() + "&";
    });
    ids = ids.substr(0, ids.length-1);

    var exportUrl = "workbench/activity/exportSelectActivities.do?" + ids;
    window.location.href = exportUrl;
});

在这个代码中,当用户单击导出按钮时,通过遍历选中的复选框构造请求参数,然后将url分配给window.location.href属性,直接下载文件。

如果这种方法仍然不能解决您的问题,建议您先请后端API开发人员检查是否正确提供导出服务,或者检查导出Excel的编写是否正确。