浏览器url地址栏空格变+号

问题描述,后台返回一个参数携带在url上面,发的时候是空格隔开的字符串,但是到了前端放到地址栏打开是一个+号。

类似于

ts 复制代码
//  后台返回的url
https://xxx.com?aa=a bxxx
// 打开浏览器后地址栏显示的
https://xxx.com?aa=a+bxxx

问了一下AI说是空格在 URL 中是特殊字符,需要进行编码才能正确传递。

而这里出现问题的原因极大可能是因为后台使用了encodeURIComponent 函数对 URL 进行编码,导致空格被转换为 %20。之后,浏览器在解析 URL 时,会将 %20 转换为 + 号

为了避免这个问题,

后台使用encodeURIComponent 编码

ts 复制代码
const url = encodeURIComponent('xsas xxa') // 得到  'xsas%20xxa'

前端使用decodeURIComponent 解码

ts 复制代码
// 'xsas%20xxa' 从浏览器地址栏的url中读取
const url = decodeURIComponent('xsas%20xxa') // 得到xsas xxa
相关推荐
就叫飞六吧1 分钟前
“电子公章”:U盾(U-Key)实现身份认证、财务支付思路
网络·笔记
小小弯_Shelby1 分钟前
vue项目源码泄露漏洞修复
前端·javascript·vue.js
兔子零10242 分钟前
CSS 视口单位进化论:从 100vh 的「骗局」到 dvh 的救赎
前端·css
q***876012 分钟前
项目升级Sass版本或升级Element Plus版本遇到的问题
前端·rust·sass
k***121713 分钟前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx
看晴天了20 分钟前
手势操控 Three.js!效果炸裂!
前端
喝咖啡的女孩27 分钟前
Promise × 定时器全场景手写
前端
h***346334 分钟前
MS SQL Server 实战 排查多列之间的值是否重复
android·前端·后端
本地跑没问题36 分钟前
Rect深入学习
前端
北辰alk36 分钟前
跨域难题终结者:Vue项目中优雅解决跨域问题的完整指南
前端