vue项目,axios请求图形验证码接口,接口返回的是文件流的形式,求教,如何转换成图片?

发布于 2022-09-06 11:28:48 字数 454 浏览 4 评论 0

clipboard.png

clipboard.png

我希望的结果是这种:

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

油焖大侠 2022-09-13 11:28:49

服务端 返回图片资源,HTTP头部,资源类型为图片

瞳孔里扚悲伤 2022-09-13 11:28:49

碰到一样的问题,因为返回的是数据!直接在url里填要请求的地址就行了,刷新验证码可以用uuid这个包

寻梦旅人 2022-09-13 11:28:49

建议使用直接把img标签的src指向这个接口,不然使用下面的代码会有浏览器兼容问题

 return 'data:image/png;base64,' + btoa(
      new Uint8Array(response.data)
        .reduce((data, byte) => data + String.fromCharCode(byte), '')
);
安稳善良 2022-09-13 11:28:48
axios
  .get('/captcha', {
    params: param,
    responseType: 'arraybuffer'
  })
  .then(response => new Buffer(response.data, 'binary').toString('base64'))
  .then(data => {
    $('#img').attr('src', data);
  });

// 浏览器中好像没有Buffer,改成这样:
axios
  .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 => {
    ...
  })

凶凌 2022-09-13 11:28:48

直接把img标签的src指向这个接口,然后在img上绑定点击事件,点击的时候更改src的地址(在原来的接口地址后面加上随机数即可)

软糯酥胸 2022-09-13 11:28:48

直接写到img的src上去就行了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文