浏览器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
相关推荐
Lee川29 分钟前
深入浅出JavaScript事件机制:从捕获冒泡到事件委托
前端·javascript
光影少年29 分钟前
async/await和Promise的区别?
前端·javascript·掘金·金石计划
恋猫de小郭30 分钟前
Flutter 发布官方 Skills ,Flutter 在 AI 领域再添一助力
android·前端·flutter
心在飞扬31 分钟前
工具调用出错捕获提升程序健壮性
前端·后端
HelloReader31 分钟前
Tauri 命令作用域(Command Scopes)精细化控制你的应用权限
前端
心在飞扬32 分钟前
基于工具调用的智能体设计与实现(*)
前端·后端
心在飞扬33 分钟前
函数调用快速提取结构化数据使用技巧
前端·后端
心在飞扬36 分钟前
不支持函数调用的大语言模型解决技巧
前端·后端
codingWhat36 分钟前
如何实现一个「万能」的通用打印组件?
前端·javascript·vue.js
赵_叶紫1 小时前
聊聊 Agent Skills 这个东西
前端