最近因为新项目的原因,用到了avue
在写导入的时候遇到的问题做一下记录
官网给的是
<div style="display:flex;">
<el-button type="primary" @click="handleGet" >下载模版</el-button>
<div style="width:20px;"></div>
<el-upload :show-file-list="false" action="你的接口" :on-change="handleChange">
<el-button type="primary">导入 excel</el-button>
</el-upload>
</div>
<br />
<avue-crud :option="option" :data="list"></avue-crud>
<script>
export default {
data(){
return {
list:[],
option:{
column:[{
label:'id',
prop:'id'
},{
label:'姓名',
prop:'name'
},{
label:'年龄',
prop:'sex'
}]
}
}
},
methods: {
handleGet(){
window.open('/cdn/demo.xlsx')
},
handleChange(file, fileLis) {
//就是这个报错
this.$Export.xlsx(file.raw)
.then(data => {
this.list=data.results;
})
}
}
}
</script>
一般写avue的时候我都是先用官网代码测试一下,看看有什么问题没有
这边我用的是avue 2.5.3版本的
这边用avue官网代码测试时报错
我们把错误注释掉
然后再次测试发现 报401
发现没有Authorization
我们再去翻看官网发现代码中并没有说明Authorization这个加在什么地方(可能69元的操作手册上面有,我刚接触并没有买)
最后百度找到 :headers="" //用于添加请求头
<el-upload :show-file-list="false" action="你的接口"
:headers="你的请求头(一般是动态的)"
:on-change="handleChange">
<el-button type="primary">导入 excel</el-button>
</el-upload>
这请求头一般都是通过本地动态拿到的
因为我暂时没有找到读取,也没有这个需求,我就直接刷新页面数据调用接口请求后端数据,没有用官网的方法了