请求后端返回的验证码显示的情况

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、情况一:数据是图片文件流
  • 二、情况二:直接返回是图片
    • 情况三:uni小程序的登录验证
  • 最后


前言

在实际的项目中验证码登录几乎是每个开发人员的必备操作技能了,但是前端获取到后端的验证码数据有很多种方式,对于初级开发人员来说有时候会比较的懵,所以在此总结开发中比较常见的的几种验证方式,便于以后开发中遇到后可以直接使用


提示:以下是本篇文章正文内容,下面案例可供参考

一、情况一:数据是图片文件流

前端需要展示验证码图片,希望后台直接返回的是图片地址,但是后端给的是的文件流而不是一个图片地址,所以这种情况需要把文件流转为base64的格式展示出来
在这里插入图片描述
这种情况是没有加 responseType: 'arraybuffer’导致的

在这里插入图片描述

<el-form-item label=""><el-inputtype="code"v-model.trim="form.code"placeholder="请输入验证码"style="width: 105px"@keyup.enter.native="login"></el-input><img:src="codeImg"class="codeImg"@click="oNcodeImg"/>
</el-form-item>oNcodeImg() {// var num = Math.ceil(Math.random() * 10); //生成一个随机数(防止缓存)this.$axios({method: 'post',url: '/sys/user/code?random=' + this.random,responseType: 'arraybuffer' //该字段需要添加,不然返回的res.data会是乱码}).then((res) => {console.log('返回的验证码数据:', res);if (res.headers['content-type'].indexOf('json') !== -1) {this.tips('验证码获取次数过多,请稍后重试', 'warning');} else {this.codeImg ='data:image/png;base64,' +btoa(new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), ''));}});},

二、情况二:直接返回是图片

返回的响应里直接是验证码,接收的时候甚至不用ajax/axios…
在这里插入图片描述

<!-- 验证码 --><el-form-item prop="code"><div class="vertify-code-box"><el-inputv-model.trim="loginForm.code"type="code"placeholder="请输入验证码"class="vertify-code"ref="code"@keyup.enter.native="login"></el-input><div class="imgDiv"><img:src="imgSrcUrl"@click="oNcodeImg"class="img"/></div></div></el-form-item>oNcodeImg() {//直接访问,不需要ajax/axios我到现在都不是很清楚这什么道理this.imgSrcUrl ="/api/web/adminuser/captcha.jpg?random=" + Math.random() * 10;console.log("this.imgSrcUrl", this.imgSrcUrl);// this.$axios({//   method: "GET",//   url: this.codeImgSrc,// })//   .then(() => {//     this.imgSrcUrl = "http://localhost:8080/api" + this.codeImgSrc;//   })//   .catch((error) => {//     console.log(error, "login error");//   });},

情况三:uni小程序的登录验证

与情况一类似后端传过来的数据是图片文件流,但是小程序上代码要做一些处理如下
在这里插入图片描述
在这里插入图片描述

<view class="input flex_between"><u-inputv-model="login.code"maxlength="6"type="code":custom-style="inputStyle"placeholder-style="font-size:32rpx;line-height:40rpx;color:#CED4E0"placeholder="请输入验证码"height="68"/><view class="code"><img:src="codeImg"@click="oNcodeImg"/><!--:src="codeImg" <text @tap="getCode">{{ tips }}</text> --></view></view>//获取与web一样的验证码oNcodeImg() {this.util.http_demo_1('POST',this.server.getCode + '?random=' + this.random,{ responseType: 'arraybuffer' },(res) => {console.log('res:', res);console.log(res.headers['Content-Type'].indexOf('image') == -1);if (res.headers['Content-Type'].indexOf('image') == -1) {this.tips('验证码获取次数过多,请稍后重试', 'warning');} else {const arrayBuffer = res.data;//将arrayBuffer数据转换成base64格式即可显示let url = `data:image/jpeg;base64,${uni.arrayBufferToBase64(arrayBuffer)}`;this.codeImg = url;}},(res) => {console.log('错误:', res);});}

最后

目前遇到的验证码登录就以上三种情况比较多了,还有一种是手机短信验证,那个相对简单,只要一个按钮发送请求就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/59887.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postMan 测试显示验证码

在postman的选项卡Test中&#xff0c;可以编写html格式的显示模板&#xff0c;在格式化显示时&#xff0c;变量使用的方式是两个大括号包着一个变量名{{变量名}}。 现在后端返回到前端的数据格式 一般是JSON格式&#xff0c;所以编写测试脚本要先把JSONW文本转换为JSON对象&am…

UNIX 工作站的大规模灭绝

行业快速迭代下&#xff0c;软硬件的淘汰速度似乎远超我们的想象。 链接&#xff1a;https://www.osnews.com/story/135605/the-mass-extinction-of-unix-workstations/ 声明&#xff1a;本文为 CSDN 翻译&#xff0c;未经允许禁止转载。 作者 | Thom Holwerda 译者 | 弯月…

【计算机网络】| Http.*协议该知道的那些事儿 | 面经

本文章参考了很多文档文献整理成狮子自己喜欢的风格类型文字&#xff0c;主要有&#xff1a; 《图解网络-小林coding》、Github上面的《前端语音社群》&#xff0c;ChatGpt 3.5 大家有兴趣可以去找来看看&#xff0c;一起上岸&#xff01;&#xff01;&#xff01; 目录 面试官…

GPT-3问答机器人实战【LangChain】

原文&#xff1a;https://www.toutiao.com/article/7211527561673867779/?log_frome0e756d2bfaf5_1683079005521 ChatGPT 几个月前问世&#xff0c;并以其回答来自广泛知识集的问题的能力震惊了所有人。 在 ChatGPT 展示大型语言模型的强大功能时&#xff0c;Dagster 核心团队…

三秒钟,我要拿到世界杯所有队伍阵容信息

文章目录 &#x1f550;Im coming~&#x1f551;我写了个啥&#xff1f;&#x1f554;咋写的&#xff1f;&#x1f558;代码供上&#x1f55b; See you next time 专栏Python零基础入门篇&#x1f525;Python网络蜘蛛&#x1f525;Python数据分析Django基础入门宝典&#x1f52…

2022世界杯结果预测,简单AI模型最有效?附代码!

2022世界杯冠军是谁&#xff1f;本文将为你揭晓一个利用简单AI模型得到的靠谱预测。 许多人称足球为“不可预测的比赛”&#xff0c;因为一场足球比赛有不同的因素可以改变最终比分。 这是真的……在某种程度上。 北大出版社&#xff0c;人工智能原理与实践 人工智能和数据科…

我在chatgpt学习requestIdleCallback

react对接chatgpt&#xff0c;导入json形成记忆数据继续提问&#xff0c;想要私聊 [{"role": "user","content": "requestIdleCallback 怎么使用" }, {"role": "assistant","content": "requestI…

必应聊天放宽限制:每轮会话最多 30 次,每天上限提至 300 次

微软搜索和人工智能副总裁 Jordi Ribas 在最新推文中宣布&#xff0c;必应聊天&#xff08;Bing Chat&#xff09;进一步放宽限制&#xff0c;每轮会话最多支持 30 次&#xff0c;用户每天最多可进行 300 次交流。 必应聊天预览版在最初发布时没有任何关于每次会话或每天聊天次…

前端食堂技术周刊第 76 期:第 95 次 TC39 会议、React Labs 工作进展、加速 JavaScript 生态系统、设计系统元规范、AI 一周资讯、前端开发者的终局

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;惠林顿牛排 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 本期摘要 第 95 次 TC39 会议React Labs 工作进展AI 一周资讯加速 JavaScript 生…

直播APP制作时即时聊天功能实现

目前直播app制作很火&#xff0c;直播中的即时聊天功能必不可少。云豹直播作为优质的直播平台源码提供商&#xff0c;在即时聊天功能方面必有其独到之处&#xff0c;下面为大家从如何实现即时聊天这个功能上答疑解惑。 即时聊天这个需求在很多app中都有&#xff0c;也是公认的…

虚拟直播实现流程(多人连麦直播互动为例)

虚拟直播既可以实现单人视频直播&#xff0c;也可以邀请观众上麦、进行多人连麦互动。 虚拟直播场景的直播分为两个阶段&#xff1a; 单虚拟主播直播&#xff1a; 单虚拟主播直播是指主播创建房间后&#xff0c;使用虚拟形象进行音视频直播&#xff0c;观众可以进房观看直播。…

AWS 使用ivs chat 实现直播聊天功能

什么是IVS Chat Rooms Amazon IVS Chat 是一种可扩展的流式聊天功能&#xff0c;具​​有内置的审核选项&#xff0c;旨在伴随实时流式视频。通过 IVS Chat&#xff0c;观众可以通过提问和参与讨论来建立社区关系。IVS Chat 提供房间资源管理和用于发送、接收和审核聊天消息的…

10种实用的Prompt技巧图解

收集整理了prompt engineering的10种实用技巧&#xff0c;以图解的方式解释了它们的主要原理。 本文追求以极简风格逼近这些方法的第一性原理&#xff0c;把黑话翻译成人话&#xff0c;并使用图片范例进行说明。 同时也加入了一些自己的理解&#xff0c;如有出入欢迎指正。 一&…

【AI】清华开源中英双语对话模型ChatGLM2-6B本地安装笔记

清华开源中英双语对话模型ChatGLM2-6B本地安装笔记 首先&#xff0c;直接上资源&#xff0c;网盘中是ChatGLM2-6B源码及模型文件&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1DciporsVT-eSiVIAeU-YmQ 提取码&#xff1a;cssa 官方的Readme已经很详尽了&#xff0…

显示/限制输入框的字数

<textarea rows"4" maxlength"50" placeholder"请输入您的口味偏好(可不填)"></textarea> <div class"limitnum"><span class"word">0</span>/50字</div> $("textarea").k…

靶场外传丨迎头赶上or弯道超车?中国网络靶场发展历程研读

从爱因斯坦计划到网络曼哈顿计划&#xff0c;全球网络靶场的发展历程折射出网络安全发展的趋势&#xff0c;从对设备、系统的仿真构建与安全性研究开始&#xff0c;逐步发展为在国防、科研、经济领域的关键系统。全球网络靶场经过14年的发展&#xff0c;已经呈现出军民两用、一…

3G与全业务运营应高度重视网络信息安全

本文讲的是 3G与全业务运营应高度重视网络信息安全&#xff0c; 11月6日至7日&#xff0c;由人民邮电报社、中国信息产业网主办&#xff0c;埃普威承办的“2009中国通信行业网络信息安全峰会(第四届)”在北京举行&#xff0c;400余名专业人士参会&#xff0c;围绕业界关注的网络…

岁末年初,“2018年度赛可达优秀产品奖”获奖名单揭晓了……

近日&#xff0c;由第三方信息安全测评认证机构——赛可达实验室主办的“2018年度赛可达优秀产品奖&#xff08;SKD AWARDS&#xff09;”颁奖盛典在京隆重举办。 腾讯、百度安全、360企业安全、奇元科技、京东云、瑞星、天空卫士、深信服、蓝盾、辰信领创、美创科技等16家单位…

内推 | 【美团充电宝-高级策略运营】北京/成都 20-30K

岗位信息 岗位&#xff1a;高级策略运营 薪资&#xff1a;20-30K 工作地点&#xff1a;北京/成都 岗位职责 1.制定业务导向策略&#xff1a;负责进行销售部门战略规划&#xff0c;根据部门业绩目标&#xff0c;发掘提升业绩贡献的契机&#xff0c;制定可落地的业绩提升策略&…

ADVANCE.AI寿栋:面对高度竞争的国际市场 中国出海企业的机会在哪?

6月16日消息&#xff0c;在细分增长2022新兴市场品牌出海线上峰会上&#xff0c;领创集团联合创始人&ADVANCE.AI CEO寿栋指出&#xff0c;过去两年&#xff0c;疫情加速全球电商发展、中国跨境电商出口额创新高的同时&#xff0c;全行业也在遭受更多的欺诈攻击。因此&#…