1、导出时,前端需要向后端传递参数,然后导出excel
// vue 前端
let url = "/***/***/***.do";
axios({
method: 'post',
responseType: 'blob', // 设置响应文件格式
url: url,
params:{
ids: ids.join(","),
},
}).then((response) => {
//new Blob([res])中不加data就会返回下图中[objece objece]内容(少取一层)
const blob = new Blob([response.data]);
const elink = document.createElement('a');
elink.download = '监控策略组.xlsx';
elink.style.display = 'none';
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
loading.close();
}).catch((error) => {
this.$message({
message: error
});
loading.close();
});
//后端 用out写东西
SXSSFWorkbook workbook = new SXSSFWorkbook();
OutputStream out = null;
out = response.getOutputStream();
workbook.write(out);
2、导出时,不需要传递参数或传递参数比较短
// 前端
window.location.href = "/***/***/***.do?id=1";
//后端
SXSSFWorkbook workbook = new SXSSFWorkbook();
OutputStream out = null;
out = response.getOutputStream();
workbook.write(out);
3、前端传递参数,后端返回
var url = '';
var tfPromise = this.$http
.post(
url ,
{id:111},
{ emulateJSON: true }
)
.then(
(response) => {
if (response.body.success) {
if(response.body.msg >0){
console.log('aa');
}
},
(error) => {
console.log("error", error);
}
);
return tfPromise;
//后端
@RequestMapping("/getDefaultSyslogCount.do")
@ResponseBody
public Object getDefaultSyslogCount(HttpServletRequest request) {
Object obj = new Object();
obj.msg = "";
obj.result = "";
return obj;
}
4、EXT访问后端
Ext.Ajax.request({
url:'',//后端请求更新方法
method : 'post',
params : {id : id},
success : function(response,options){
var jsonStr= "("+response.responseText+")";
},
failure:function(){
},
});
$.ajax({
url: url,
dataType:"text",
type:"post",
async:false,
data:requestParams,
success: function(data,textStatus){
// policyName= eval("("+data+")");
},
error:function(XMLHttpRequest,textStatus,errorThrown){
}
});
}