浏览器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
相关推荐
不思进取的程序猿几秒前
前端性能调优实战指南 — 22 条优化策略
前端
yuki_uix2 分钟前
HTTP 缓存策略:新鲜度与速度的权衡艺术
前端·面试
哈撒Ki2 分钟前
快速入门 Dart 语言
前端·flutter·dart
ZC跨境爬虫8 分钟前
3D 地球卫星轨道可视化平台开发 Day5(简介接口对接+规划AI自动化卫星数据生成工作流)
前端·人工智能·3d·ai·自动化
毛骗导演8 分钟前
Claude Code Agent 实现原理深度剖析
前端·架构
星晨雪海12 分钟前
若依框架原有页面功能进行了点位管理模块完整改造(3)
开发语言·前端·javascript
哥本哈士奇20 分钟前
SQLAlchemy 学习笔记
笔记·学习
呼叫冰河谷22 分钟前
Unity学习笔记(六)——3DRPG游戏(4)
笔记·学习·游戏
qeen8724 分钟前
【算法笔记】前缀和经典题目解析
c语言·c++·笔记·学习·算法