vue获取图片验证码

 <el-form-item label="图片验证码" label-width="25%">
        <el-col :span="15">
            <el-form-item prop="photoIdentityCode">
              <el-input type="text" v-model="loginForm.photoIdentityCode" placeholder="单击图片刷新"
                style="width: 100%;"  @keyup.enter.native="login" clearable>
              </el-input>
            </el-form-item>
          </el-col>
          <el-col class="line" :span="1">&nbsp;</el-col>
          <el-col :span="8">
            <el-form-item>
                <img class="captcha-img pointer" :src="loginForm.src" @click="refreshCaptcha" clearable> 
            </el-form-item>
          </el-col>
        </el-form-item>

所有请求采用axios进行封装;

//获取图片校验码
    refreshCaptcha: function(){
      this.loginForm.timeStamp=new Date().getTime();
      let params={
        "data":{
        "timeStamp":this.loginForm.timeStamp
        }
      }
      this.$api.LoginManage.getPhotoValidCode(params).then((res)=>{
        let img = btoa(
          new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), '')
        );
        this.loginForm.src=  'data:image/png;base64,' +img;
      })
    },

后端返回为图片流,所以要加 responseType: "arraybuffer" 这句代码;

// 获取图片验证码
export const getPhotoValidCode = (params) => {
    return axios({
        url: 'loginInfo/getPhotoValidCode',
        responseType: "arraybuffer",
        method: 'post',
        params
    })
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,909评论 1 32
  • 前言 作为前端工程师 de 我们,日常少不了会跟图片打交道。在各大电商平台工作的前端工程师们,感受可能会更加的明显...
    付出的前端路阅读 7,900评论 0 4
  • 功能需求 1.完成图片的上传和上传之后图片的预览功能 遇到的问题 1.使用html的src标签,可以直接发送请求。...
    张培_阅读 9,374评论 0 3
  • $http 我们可以使用内置的$http服务直接同外部进行通信。$http服务只是简单的封装了浏览器原生的XMLH...
    oWSQo阅读 3,989评论 0 0
  • 第一章 阴阳和五行 1、人体之气,以功能不同可以分为阴气和阳气。阴气主凉润、宁静、抑制、沉降。阳气主温煦、推动、兴...
    春雪画暖snow阅读 10,436评论 1 7

友情链接更多精彩内容