浏览器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
相关推荐
宇宙realman_9993 分钟前
Git 本地版本控制极简使用笔记(Qt 项目专用)
笔记·git
A923A3 分钟前
【Vue3大事件 | 项目笔记】第六天
vue.js·笔记·前端框架·前端项目
我命由我123454 分钟前
JS 开发问题:url.includes is not a function
开发语言·前端·javascript·html·ecmascript·html5·js
weixin199701080169 分钟前
义乌购商品详情页前端性能优化实战
前端·性能优化
汪啊汪11 分钟前
Day 3:Hooks 原理
前端
汪啊汪13 分钟前
Day 2:JSX 转换原理
前端
学以智用15 分钟前
Vue3 + Vue Router 4 完整示例(可直接运行)
前端·vue.js
程序员小李白17 分钟前
vue2基本语法详细解析(2.7条件渲染)
开发语言·前端·javascript
SuperEugene17 分钟前
Vue3 项目目录结构规范:按业务域划分,新人快速上手|项目规范篇
前端·javascript·vue.js
悟空瞎说18 分钟前
# 10年前端血坑:Canvas drawImage画不出图?90%的人栽在这几步
前端