Vue axios从后台获取到二进制图片流,在前端将其转换为图片展示出来
用axios接收到的后台的图片是二进制乱码:要使其显示为图片的形式,要对二进制流进行一个转换。在页面初始化完成时,就发出获取验证码的请求,将其放在mounted钩子函数中:mounted: function () {this.getImgCode()},在methods中对获取验证码的方法进行编写:methods: {getImgCode () {this.$http.get('/后端接口', {
·
用axios接收到的后台的图片是二进制乱码:
要使其显示为图片的形式,要对二进制流进行一个转换。
在页面初始化完成时,就发出获取验证码的请求,将其放在mounted钩子函数中:
mounted: function () {
this.getImgCode()
},
在methods中对获取验证码的方法进行编写:
methods: {
getImgCode () {
this.$http.get('/后端接口', {
responseType: 'arraybuffer'
})
.then(response => {
return 'data:image/png;base64,' + btoa(
new Uint8Array(response.data)
.reduce((data, byte) => data + String.fromCharCode(byte), '')
)
}).then(data => {
this.imgCode = data
})
console.log(this.imgCode)
},
在data中:
data () {
return {
imgCode: '',
}
},
在页面展示验证码:
<tr>
<td>
<input type="imageCode" placeholder="验证码" v-model="form.imageCode">
</td>
<td>
<img :src="imgCode" style="cursor: poninter" @click="changeImgCode">
</td>
</tr>
最后查看 就是图片形式的验证码:
更多推荐
已为社区贡献1条内容
所有评论(0)