DOM:
<div class="captcha clearfix" v-show="select1">
<el-form-item prop="captcha">
<el-input type="text" v-model="loginform.captcha" auto-complete="off" placeholder="请输入验证码"></el-input>
</el-form-item>
<img alt="" @click="getCode()" class="images"/>
</div>
方法:
getCode() { // 获取验证码
amountList1('/code/getCode','').then(res=>{
return 'data:image/jpeg;base64,' + btoa(
new Uint8Array(res.data)
.reduce((data, byte) => data + String.fromCharCode(byte), '')
);
})
.then(data => {
$('.images').attr('src',data);
})
}
请求:
// 验证码文件流转图片ajax-登录页
export function amountList1(url, obj) {
var getUrl = getServerUrl();
return request({
url: getUrl.baseUrl + url,
method: 'post',
responseType: "arraybuffer",
xhrFields: {
withCredentials: true
},
crossDomain: true,
headers: {
'Content-Type': 'application/json;charset=UTF-8',
},
data: obj
})
}
简洁版:
<template>
<el-form style="width: 400px;">
<el-form-item style="height: 40px;margin-bottom: 20px;">
<el-input class="input" maxlength="8" placeholder="请输入验证码"></el-input>
<div class="divIdentifyingCode" @click="getIdentifyingCode(true)">
<img id="imgIdentifyingCode" style="height:40px; width: 100px; cursor: pointer;" alt="点击更换"
title="点击更换" />
</div>
</el-form-item>
</el-form>
</template>
<script>
export default {
methods: {
/**
* 窗口代码
* @param {Boolean} bRefresh 是否刷新
*/
getIdentifyingCode: function (bRefresh) {
let identifyCodeSrc = "https://www.xxx.xxx.xxx/imgCode";
if (bRefresh) {
identifyCodeSrc = "https://www.xxx.xxx.xxx/imgCode?" + Math.random();
}
let objs = document.getElementById("imgIdentifyingCode");
objs.src = identifyCodeSrc;
},
}
}
</script>