首页 > 其他分享 >vue.js客服系统实时聊天项目开发(十七)解决url get传参后进行base64解密问题

vue.js客服系统实时聊天项目开发(十七)解决url get传参后进行base64解密问题

时间:2023-02-06 11:36:24浏览次数:472  
标签:vue 20 url 客服 传参后 base64 str return

有些参数需要在url的GET里传递,但是为了防止特殊字符问题,我转成了base64编码。

但是js进行解码的时候,总是报错:

报错: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.

 

这是因为base64在url中会进行url编码,+号会被转成%20

这就需要我们在拿到get参数后,进行url解码,js自带的解码函数会把%20转成空格,这时就会转码失败

下面函数是一些兼容处理

function urlDecode(str) {
return decodeURIComponent(str.replace(/\%20/g, '+'));
}
// Base64解密
function b64DecodeUnicode(str) {
str=urlDecode(str);
return decodeURIComponent(atob(str.replace(/\_/g, '/').replace(/\-/g, '+'))
.split('')
.map(function (c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
})
.join(''));
}

 

十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》

一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。

开源地址:​​唯一客服(开源学习版)​

标签:vue,20,url,客服,传参后,base64,str,return
From: https://blog.51cto.com/u_15274085/6038786

相关文章

  • vue cli脚手架 - 删除配置好的自定义预配置
    在系统盘用户根目录里找到 .vuerc文件  编辑文本,删除不要的配置即可  删掉后,我就剩下一个了 ......
  • Vue 父亲组件更新子组件后子组件属性数据不改变
    记录一下。父组件内容:<template><divstyle="height:100%"><el-container><SiteAside:isCollapse="iscollapse":key="timer"></SiteAsid......
  • vue项目中图片放在public?还是assets?
    首先,要知道,public的资源要用绝对路径/访问,打包时不会被编译,所以我们可以随时替换;assets的资源要用相对路径./访问,打包时会被编译,所以打包之后我们不能替换;所以,使用随时要......
  • Linux-curl下载报错解决方法
    报错提示:curl:(92)HTTP/2stream1wasnotclosedcleanlybeforeendoftheunderlyingstream==>ERROR:Failurewhiledownloadinghttps://github.com/Jguer/ya......
  • aws云上部署vue代码+nodeJS跨域配置
    大致需求客户想要构建一个新的客户站点,前端通过Https来访问VUE界面,然后VUE跨域Https访问后端的接口服务,通过NodeJS来提供后台服务。假定是全新的服务,本文从域名申请配置、CD......
  • vue面试题
    1.常见的指令答v-ifv-elsev-elseifv-bindv-modelv-forv-showv-onv-textv-htmlv-cloakv-once2.vue的优点答:1.轻量级框架,值关注视图层2.双向数据的绑定,在数......
  • VUE项目踩坑记录(持续更新)
    1.this.$router.push({path:'',query:{show:true}})通过路由传的参数为Boolean时,接收的时候为String类型2.详情页回列表定位到之前位置detail页返回到列表页定位到之前的......
  • vue3如何改变svg字体大小,以及子组件如何改变父组件背景色
    提问:1、hanzi-write生成的svg只能使用px像素大小,使用rem无效。2、子组件无法修改父组件背景色。svg问题: <template>   <divclass="header"> ......
  • 6.4【微信小程序全栈开发课程】记录页面(四)--mpvue时间格式化
    将数据库中的数据格式化成YYYY.MM.DDhh:mm的格式,比如2019.10.1220:241、修改日期文件mpvue框架中有一个专门格式化日期的文件src/utils/index.js文件,将日期格式化成“YYYY......
  • vue
    1.生命周期Vue211个beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestorydestoryedactiviteddeactivitederrorCaptured2.v-if和......