浏览器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
相关推荐
胡萝卜术15 小时前
力扣5. 最长回文子串
前端·javascript·面试
我星期八休息15 小时前
网络编程—应用层HTTP协议
linux·运维·开发语言·前端·网络·网络协议·http
龙仔72515 小时前
人大金仓KingbaseES V8 手动单库备份&恢复操作笔记
数据库·笔记·oracle·人大金仓
不好听61316 小时前
前端路由完全指南(下篇):懒加载、History 栈与工程化实践
前端·react.js
zhangrelay17 小时前
消费电子原装锂电池服役8–20年且健康度>40%公开实测案例完整调研分析报告
笔记·学习
疯狂打码的少年17 小时前
【软件工程】软件测试:黑盒测试(等价类/边界值/因果图)
笔记·软件工程
圣光SG18 小时前
Java Web入门基础知识笔记
java·前端·笔记
cyforkk19 小时前
Vercel 绑定自定义域名极简配置指南
服务器·前端·网络
IT_陈寒20 小时前
React useEffect依赖数组中埋的坑,这次终于让我逮到了
前端·人工智能·后端