请求验证码接口直接返回一张图片,且打印成功的结果是一串乱码, 应该如何渲染?
1.将请求改为blob类型
// 获取验证码
export const getYz = () => {
return request('/web-api/dunsi/captcha/***', { responseType: 'blob' })
}
**2.将file转成blob **
async getYz () {
const res = await getYz() //请求
// 转换成blod,同时根据res去设置type
const myBlob = new window.Blob([res], { type: 'image/png' })
// 创建一个新的对象URL,该对象URL可以代表某一个指定的 File 对象或 Blob 对象.
this.imgVal = window.URL.createObjectURL(myBlob)
},
3.渲染与切换
<!--渲染-->
<img @click="changeImg" :src="imgVal" style="background-color: pink;height: 38px;width: 146px;cursor: pointer;">
// 切换
changeImg () {
this.getYz()
},
就这样就写完了,但是这样无法植入cookie,致使后端拿不到,无法判断该验证码是否正确
改变写法: document.querySelector('#xxx').src = ${基地址}/请求地址?t= + (new Date().getTime())
主要是看情况,用哪种写法情况不同写法不同