浏览器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
相关推荐
不会代码的小猴9 小时前
3. 控件学习1
开发语言·c++·笔记·qt·算法
fangzhanpeng1689 小时前
(前端)2.js变量作用域样例
开发语言·前端·javascript
赵广陆9 小时前
企业实战:web服务集成
前端·pycharm·fastapi
demo007x9 小时前
Hermes-Agent 技术架构
前端·后端·agent
疯狂打码的少年10 小时前
【数据结构】图的存储结构:邻接矩阵与邻接表
数据结构·笔记
蒸蒸yyyyzwd11 小时前
cpp 选手准备秋招学习笔记 day10
笔记·面试·求职招聘
码艺-Alimjan11 小时前
Vue项目源码备份最佳实践:无视node_modules,打包体积仅2MB
前端·javascript·vue.js
隔窗听雨眠11 小时前
esbuild构建工具简介:重新定义前端构建速度的极速打包器
前端