浏览器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
相关推荐
\xin8 分钟前
pikachu自编CSRF(GET),CSRF(POST),CSRF(token)
前端·csrf
是大强11 分钟前
前端一个项目用node20 一个项目用node14 怎么切换
前端
不老刘18 分钟前
Git Cherry-Pick:微前端架构下的“精准医疗”与最佳实践
前端·git
Ting.~23 分钟前
软件设计师备考笔记【day3】-数据库
数据库·笔记
Ting.~25 分钟前
软件设计师备考笔记【day3】-操作系统
笔记
handler0135 分钟前
进程状态流转的本质:Linux 内核队列与底层数据结构解密
linux·运维·c语言·数据结构·c++·笔记·学习
LIO39 分钟前
ESLint 极简指南:让代码既规范又一致
前端·eslint
明月_清风1 小时前
前端工程化七连问:从紧急修复到版本控制,一文打通工程化任督二脉
前端·前端工程化
用户6757049885021 小时前
不装插件不写代码!教你一招搞定网页长截图!清晰且高效!
前端·chrome
tjl521314_211 小时前
01C++ 分离编译与多文件编程
前端·c++·算法