积跬步 至千里
目录
今日问题
项目中医院名称导入不标准,包含了 ‘&’ 符号,想通过搜索接口查询看看,发现 likeName = '&',拼接好的 URL 在请求时被吃掉了,导致没有达到搜索目的。
const likeName = "&"
let url = "xxxx?likeName="+likeName+'&flag='+xxx
以上我们希望的是likeName = '&', 然后在拼接后的URL 进行请求解析时,& 被当做了参数的分隔符 ,没有被当做参数,两个的时候也是当做了分隔符,因此导致likenName 搜索值空
解决办法 转义 使用 URL 编码
将搜索参数进行转义,为了更标准,将搜索的内容进行encode URL 编码,因为搜索内容中可能不仅有 & 特殊符号的影响,其他特殊符号不编码也可能会在服务器端受到限制而报错。
转义可以选择 encodeURIConmpnent
其他字符含义
字符 | 特殊字符的含义 | URL编码 |
---|---|---|
+ | URL 中+号表示空格 | %2B |
空格 | URL中的空格可以用+号或者编码 | %20 |
/ | 分隔目录和子目录 | %2F |
? | 分隔实际的 URL 和参数 | %3F |
% | 指定特殊字符 | %25 |
# | 表示书签 | %23 |
& | URL 中指定的参数间的分隔符 | %26 |
= | URL 中指定参数的值 | %3D |