浏览器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
相关推荐
浔溺1 小时前
al+大数据每日学习笔记36
大数据·笔记·学习
云上工程笔记1 小时前
AstraFlow + React/Vite:如何用自然语言开发并部署一个 AI 咖啡网站原型
前端·人工智能·react.js
Q一件事1 小时前
ArcGIS中TypeError: can‘t multiply sequence by non-int of type ‘str‘错误
前端·javascript·arcgis
浔溺1 小时前
al+大数据每日学习笔记35
大数据·笔记·学习
美狐美颜SDK开放平台2 小时前
从视频处理到实时渲染:直播APP中视频美颜SDK的关键技术解析
前端·人工智能·架构·实时互动·音视频·视频美颜sdk
kyrie_sakura2 小时前
MySQL学习笔记4 -- select的7大子句,子查询
笔记·学习·mysql
yume_sibai2 小时前
ES6 核心知识点完全总结(变量 + 箭头函数 + 解构 + Promise + 模块化)
前端·ecmascript·es6
Moment2 小时前
为什么市面上的 coding agent 大多数都基于Nodejs?
前端·后端·面试
进阶的DW2 小时前
LLM上下文管理
笔记
吃瓜的猹2 小时前
Gemini 3.8 Flash 是真的站起来了,一起来看看我到底做了什么吧~
前端