浏览器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
相关推荐
yuzhiboyouye7 小时前
web前端开发自测清单
前端
妮妮分享7 小时前
H5获取定位的方式是什么?
java·前端·javascript
weixin_439930648 小时前
前端js日期计算跨月导致的错误
开发语言·前端·javascript
零一科技8 小时前
瑞吉外卖项目,前端源码(用户端)解析
前端
用户93051065822248 小时前
module federation,monorepo分不清楚?
前端·架构
柳安8 小时前
手写new操作符执行过程
前端·javascript
狗哥哥8 小时前
Vue 3 统一面包屑导航系统:从配置地狱到单一数据源
前端·vue.js·架构
可乐红烧西红柿8 小时前
tauri2+vue+vite实现基于webview视图渲染的桌面端开发
前端·前端框架
鱼鱼块8 小时前
从后端拼模板到 Vue 响应式:前端界面的三次进化
前端·vue.js·面试
UIUV8 小时前
JavaScript内存管理与闭包原理:从底层到实践的全面解析
前端·javascript·代码规范