window.open 方式请求下载接口的时候,链接太长怎么办?

解决方案:post from 表单方式提交

this.post('/api/HCReportxx/exportHcReportxx',{
     "year":'2019',"data": JSON.stringify(param)});

post =(url, params) =>{
      
        // 创建form元素
        var temp_form = document.createElement("form");
        // 设置form属性
        temp_form .action = url;      
        temp_form .target = "_self";
        temp_form .method = "post";      
        temp_form .style.display = "none";
        // 处理需要传递的参数 
        for (var x in params) {
      
            var opt = document.createElement("textarea");      
            opt.name = x;      
            opt.value = params[x];      
            temp_form .appendChild(opt);      
        }      
        document.body.appendChild(temp_form);
        // 提交表单      
        temp_form .submit();     
    }

原因:为什么要用form表单提交,而不用封装好的Ajax POST请求 ,因为 Ajax不能接受后台的文件流

你可能感兴趣的:(前端的奇技淫巧,javascript,window.open下载文件)