用axios接收到的后台的图片是二进制乱码:

要使其显示为图片的形式,要对二进制流进行一个转换。

在页面初始化完成时,就发出获取验证码的请求,将其放在mounted钩子函数中:

 mounted: function () {
    this.getImgCode()
  },

 在methods中对获取验证码的方法进行编写:

methods: {
    getImgCode () {
      this.$http.get('/后端接口', {
        responseType: 'arraybuffer'
      })
        .then(response => {
          return 'data:image/png;base64,' + btoa(
            new Uint8Array(response.data)
              .reduce((data, byte) => data + String.fromCharCode(byte), '')
          )
        }).then(data => {
          this.imgCode = data
        })
      console.log(this.imgCode)
    },

在data中:

 data () {
    return {
      imgCode: '',
    }
  },

在页面展示验证码:

                    <tr>
                      <td>
                    <input type="imageCode" placeholder="验证码" v-model="form.imageCode">
                      </td>
                      <td>
                    <img :src="imgCode" style="cursor: poninter" @click="changeImgCode">
                      </td>
                    </tr>

最后查看 就是图片形式的验证码:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐