记一个前端项目问题-图片验证码

本文描述了一个前端项目中遇到的问题,即后端通过文件流返回的图片验证码在前端显示为乱码。通过引入Base64.js库,将后端接口返回的ArrayBuffer转换为Base64编码,并设置合适的responseType,解决了前端正确展示图片验证码的需求。
摘要由CSDN通过智能技术生成

@记一个前端项目问题-图片验证码

#问题背景

项目需求,需要在前端显示一下四位字符验证码的图片,图片由后端生成,前端通过接口访问得到图片,显示到前端
前提:
1、后台接口传的图片在前端没有进行处理之前显示乱码(后台接口返回图片直接用文件流进行返回)

在这里插入图片描述

解决方法

1、引入bese64,js插件

import base64  from "base64-js"

package.json配置信息

2、将响应的数据类型调整为 responseType: ‘arraybuffer’

uni.request({
			    method: 'GET',
			    url: '获取图片接口地址',
			    responseType: 'arraybuffer',
			    complete: function complete(response) {
			        console.log("执行完成:",response)
			       const binaryData = new ArrayBuffer(response.data);
			       console.log(binaryData)
			       // Encode the binary data as Base64
			       _this.verification_code = 'data:image/png;base64,'+base64.fromByteArray(new Uint8Array(response.data));
			    }
			})

3、前端设置图片路径
下面展示一些 内联代码片

// A code block
var foo = 'bar';
<image :src="verification_code"></image>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值