博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue项目经验:图形验证码接口get请求处理
阅读量:5100 次
发布时间:2019-06-13

本文共 1114 字,大约阅读时间需要 3 分钟。

  

  一般图形验证码处理:

      直接把img标签的src指向这个接口,然后在img上绑定点击事件,点击的时候更改src的地址(在原来的接口地址后面加上随机数即可,避免缓存)

验证码
export default {  data () {      codeImg: `${
this.baseUrl}/captcha/captcha.php }, methods: { updateCode() { this.codeImg = `${
this.baseUrl}/captcha/captcha.php?=${Math.random()}`; } } }

  

  但是,有一天,后端说,在接口的响应头里放了一些信息,需要提交form表单时,一并提交。然后用axios的get请求,尴尬了,响应的是数据流,显示不出图片了。

  

  解决方案如下:将数据流转换为图片

  首先html结构不变,把js改了。

export default {  data () {     imgCode: '',    // 一定要有      captchaId: ''   // 后端需要的响应头中的信息参数  },  created () {     this.updateCode()  },  methods: {    updateCode () {      let _this = this      this.axios.get(`${
this.urlBase}/user/captcha?=${Math.random()}`, { responseType: 'arraybuffer' }).then((res) => { // 后端需要的响应头中的信息参数赋值 this.captchaId = res.headers['x-ocp-captcha-id'] // 转换 let codeImg = 'data:image/png;base64,' + btoa( new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), '') ) _this.codeImg = codeImg }) }, } }

 

转载于:https://www.cnblogs.com/EnSnail/p/8444391.html

你可能感兴趣的文章
Kth Smallest Element in a BST
查看>>
Git Submodule管理项目子模块
查看>>
修改登录密码
查看>>
Android中shape的使用
查看>>
(转)解决点击a标签返回页面顶部的问题
查看>>
用join取代not in
查看>>
how to correct spelling?
查看>>
《算法4》回顾(一)
查看>>
Repeater用ul li,一行显示多条数据
查看>>
Java并发(四):并发集合ConcurrentHashMap的源码分析
查看>>
5. Longest Palindromic Substring
查看>>
Maven 三种archetype说明
查看>>
oracle自关联表的子删父变功能实现
查看>>
程序员需要具备的基本技能
查看>>
jsoncpp cmake
查看>>
Web消息主体风格(Message Body Style)
查看>>
eclipse- 智能提示设置
查看>>
回调函数实例——数学计算
查看>>
C#文件路径乱码
查看>>
俞伯牙摔琴谢知音的故事
查看>>