【Vue】vue项目,axios请求图形验证码接口,接口返回的是文件流的形式,求教,如何转换成图片?
我希望的结果是这种:
回答
axios .get('/captcha', {
params: param,
responseType: 'arraybuffer'
})
.then(response => new Buffer(response.data, 'binary').toString('base64'))
.then(data => {
$('#img').attr('src', data);
});
// 浏览器中好像没有Buffer,改成这样:
.get('/captcha', {
params: param,
responseType: 'arraybuffer'
})
.then(response => {
return 'data:image/png;base64,' + btoa(
new Uint8Array(response.data)
.reduce((data, byte) => data + String.fromCharCode(byte), '')
);
}).then(data => {
...
})
直接把img
标签的src
指向这个接口,然后在img
上绑定点击事件,点击的时候更改src
的地址(在原来的接口地址后面加上随机数即可)
直接写到img的src上去就行了
服务端 返回图片资源,HTTP头部,资源类型为图片
碰到一样的问题,因为返回的是数据!直接在url里填要请求的地址就行了,刷新验证码可以用uuid这个包
建议使用直接把img标签的src指向这个接口,不然使用下面的代码会有浏览器兼容问题
return 'data:image/png;base64,' + btoa( new Uint8Array(response.data)
.reduce((data, byte) => data + String.fromCharCode(byte), '')
);
以上是 【Vue】vue项目,axios请求图形验证码接口,接口返回的是文件流的形式,求教,如何转换成图片? 的全部内容, 来源链接: utcz.com/a/72782.html