要拿到后端的验证码图片,访问接口后端返回的响应数据是一对乱码的文
浏览器是这样子显示的
后台获取到的信息是:
解决方法:
1.一开始寻找方法的时候,大致得到就是将 responseType 设置为 blob,但是不生效,之后看了一下,因为我用的是uni.request来访问后台的,查看了官网发现,uni.request的requestType只有text,arrayBuffer,所以设置相应类型为arrayBuffer。
2.获取到的值是下面代码图这样子,需要将得到的arrayBuffer数据转成base64格式的数据
<img :src="img" alt="">
uni.request({
url: urlLink,
method:'POST',
data:data,
header :{
'Content-Type':'application/json',
},
responseType: 'arraybuffer', // //告诉服务器你希望得到的响应类型为arraybuffer(二进制数据)类型
success: (res) => {
const base64 = uni.arrayBufferToBase64(res.data);//将得到的arraybuffer数据转换为base64格式的数据
const imgSrc = 'data:image/png;base64,'+base64;
this.img= imgSrc;
}
})
经过这一系列转换后,传到img的数据如下图,能正常显示了
参考过的博文: