1、安装
cnpm i pako --save
2、使用
import pako from 'pako'
console.log(res.data,'后台返回加密后数据')
let info = pako.ungzip(res.data, { to: 'string' }); //解压成字符串
let result = eval(info);//字符串转换成对象
// console.log(result,'解压结果')
3、本地可以,线上报错(后台返回压缩后的字符串)
unknown compression method
4、其他方法(后端返回流)
let res = await axios({
method: "post",
baseURL: window.ROOT,
withCredentials: true,
responseType: "blob",
timeout: 500000,
url: '/api/bigDataSearch/searchData',
headers: {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json',
token: store.getters.token ? getToken() : null
},
data: params
})
this.loading = false;
// console.log('后台返回加密后数据',res.data)
let reader = new FileReader();
reader.readAsArrayBuffer(res.data, "utf-8");
reader.onload =() =>{
// 对数据进行解压
let arr = JSON.parse(
pako.inflate(reader.result, {
to: "string"
})
);
let result = arr
if(result.code!==1) return this.$message.error(result.message)
this.resData= result.data;
if(result.data.length>1){
// this.tableData=result[1];
this.columnsData=result.data[0];
this.tableData=result.data.filter((x,index)=>index!=0);
console.log(this.tableData,'8888')
}else{
this.columnsData=result.data[0];
this.tableData=[]
console.log(this.columnsData,'999')
}
};