浏览器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
相关推荐
go_bai12 分钟前
Linux-线程
linux·开发语言·c++·经验分享·笔记
q***498620 分钟前
分布式WEB应用中会话管理的变迁之路
前端·分布式
净032220 分钟前
IsaacLab笔记(1)利用standalone python创建场景
笔记·isaacsim·isaaclab
IT_陈寒29 分钟前
JavaScript性能优化:10个V8引擎隐藏技巧让你的代码快30%
前端·人工智能·后端
AA陈超40 分钟前
ASC学习笔记0022:在不打算修改属性集时访问生成的属性集
c++·笔记·学习·ue5·虚幻引擎·unreal engine
前端加油站1 小时前
Chrome/Firefox 浏览器扩展开发完整指南
前端·chrome
码途进化论1 小时前
从Chrome跳转到IE浏览器的完整解决方案
前端·javascript
01100001乄夵1 小时前
第六课:仿真进阶与调试技巧
经验分享·笔记·学习方法
笙年1 小时前
Vue 基础配置新手总结
前端·javascript·vue.js
哆啦A梦15881 小时前
40 token
前端·vue.js·node.js