美文网首页
Vue使用base64图片验证码页面显示

Vue使用base64图片验证码页面显示

作者: 兰觅 | 来源:发表于2020-12-14 14:07 被阅读0次

简述

1.需求:图片中显示随机验证码,每次点击图片,图片会刷新
2.第一次进入页面时,在mounted中向后台发起图片请求
将后台提供的base64格式的图片,转格式存在变量中,将变量绑定到img标签的src属性上。
3、点击图片时,向后台发起请求

数据格式

数据格式

效果图

效果图

源码

组件
<template>
  <el-form ref="registerFormRef" :model="registerForm" :rules="registerFormRules" label-width="80px">
       <el-form-item label="验证码" prop="code" class="code">
            <el-input style="width:400px;" v-model="registerForm.code" placeholder="请输入验证码">
              <img slot="append" :src="changeImage" @click="handleClickImge" class="codeImage" />
            </el-input>
          </el-form-item>
</el-form>
</template>
<script>
  export default {
    data() {
      return {
        changeImage: '',
        //注册对象
        registerForm: {
          code: '',
        },
      };
    },
    methods: {
      handleClickImge(){
            this.$axios.post('http://www.addres.com:9101/api/user/code/getCode').then(res => {
          this.changeImage = "data:image/jpeg;base64," + res.data.data;
          console.log(res)
        }).catch(err => {
          console.log(err)
          console.log("error");
        });
      },
    },
    mounted() {
      this.handleClickImge()  //加载刷新验证码
    }
  };
</script>

<style lang="less" scoped>
 //图片校验码
  .codeImage {
    width: 110px;
    height: 34px;
    // border: 1px solid #007ACC;
  }
</style>

补充

由于发送验证时无法准确定位是哪一个验证码,导致验证失败。后端修改加了一个识别码:mcode或者key
以下还加了校验请求


数据格式2
修改内容如下:
<script>
 import qs from 'qs'
  export default {
    data() {
//校验请求
 const checkImageCode = (rule, value, callback) => {
        const param = {
          'code': value,
          'mcode': this.imageMcode
        }
        this.$axios.post('http://cn:9101/api/user/code/checkCode', qs.stringify(param)).then(res => {
      if (res.data.code == 10000) {
           this.$message.success(res.data.msg)
          }else{
             this.$message(res.data.msg)
          }
        }).catch(err => {
          console.log(err)
          console.log("error");
        });
      }
      return {
        changeImage: '',
     //验证码的识别码
         imageMcode: '',
        //注册对象
        registerForm: {
          code: '',
        },
      };
    },
    methods: {
      handleClickImge(){
            this.$axios.post('http://www.addres.com:9101/api/user/code/getCode').then(res => {
        this.imageMcode = res.data.data.mcode
          this.changeImage = "data:image/jpeg;base64," + res.data.data.base64;
          console.log(res)
        }).catch(err => {
          console.log(err)
          console.log("error");
        });
      },
    },
    mounted() {
      this.handleClickImge()  //加载刷新验证码
    }
  };
</script>

相关文章

  • Vue使用base64图片验证码页面显示

    简述 1.需求:图片中显示随机验证码,每次点击图片,图片会刷新2.第一次进入页面时,在mounted中向后台发起图...

  • App Inventor从服务端接收base64数据图片

    WHY 有时候需要从服务端接收图片,显示在APP页面,如显示验证码、二维码等,这些图片一般都是以base64格式传...

  • android的WebView 显示手机图片

    前言 WebView显示Html页面,有时需要显示手机选择的图片。开始使用Base64,方便快捷。但是产品经理改成...

  • 将用上传的图片转成base

    需求1:上传图片并在页面上显示,请求接口时将上传的图片以base64的格式传回。实现:使用FileReader 对...

  • 微信小程序之拍照/选择图片&&转成base64、

    一、点击选择图片/拍照 二、将图片处理成base64 三、把base64转成图片路径显示在页面 四、点击预览图片 ...

  • 验证码base64获取

    目前遇到base64验证码的识别问题,使用代码无法解决。最后的解决方案是:1.拿到验证码图片的base64编码2....

  • 用户验证

    验证码: 随机生成由英文字母与数字组成的字符串,生成一个base64图片,在前端显示图片。比较输入的验证码与实际字...

  • Vue导出页面为PDF格式

    思路:就是将页面转换成图片格式.然后通过图片的base64码.生成PDF 方案一: 1.在Vue页面上实现PDF导...

  • PIL image 转 base64

    PIL image to base64 最近有个做验证码的需求,要求直接返回图片base64编码后的数据验证码是通...

  • 解决web界面验证码不显示的问题

    背景描述:在liunx系统上,使用tomcat中间件,访问web项目,登录页面的图片验证码显示不出来,但是在win...

网友评论

      本文标题:Vue使用base64图片验证码页面显示

      本文链接:https://www.haomeiwen.com/subject/keevgktx.html