浏览器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
相关推荐
超高校级的作者17 分钟前
博客摘录「 CentOS7 Fail2ban安装使用」2024年4月15日
笔记
海市公约18 分钟前
HTML网页开发从入门到精通:从标签到表单的完整指南
前端·ide·vscode·程序人生·架构·前端框架·html
万变不离其宗_81 小时前
http学习笔记
笔记·学习
行云流水6261 小时前
前端树形结构实现勾选,半勾选,取消勾选。
前端·算法
diudiu_331 小时前
web漏洞--认证缺陷
java·前端·网络
lkbhua莱克瓦241 小时前
IO流练习(加密和解密文件)
java·开发语言·笔记·学习方法·io流·io流练习题
阿珊和她的猫2 小时前
<video>` 和 `<audio>` 标签的常用属性解析
前端
LSL666_2 小时前
4 jQuery、JavaScript 作用域、闭包与 DOM 事件绑定
前端·javascript·html
yinuo2 小时前
前端跨页面通讯终极指南⑤:window.name 用法全解析
前端
小飞侠在吗2 小时前
vue computed 和 watch
前端·javascript·vue.js