1、首先在请求的时候配置里面加上responseType: ‘arraybuffer’ ,这点很重要
例如:
const serviceDown = axios.create({
baseURL: window.config.api,
headers: { 'Content-Type': 'application/json;charset=UTF-8'},
responseType: 'arraybuffer'
})
2、然后在请求拿到返回的ArrayBuffer对象数据后转成base64的就能直接在img标签里面使用了
get(){
this.$post('').then(res=>{
const url='data:image/jpeg;base64,' + this.arrayBufferToBase64(res)
})
},
arrayBufferToBase64 (buffer) {
var binary = ''
var bytes = new Uint8Array(buffer)
var len = bytes.byteLength
for (var i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i])
}
return window.btoa(binary)
},