为什么需要对 url 做 2 次转义呢
来源:5-3 处理请求 url 参数 - 实现 url 参数处理逻辑
 
			慕UI0101873
2019-05-14
在处理url参数小节中, 为什么需要对 url 做 2 次转义呢
function encode(val: string): string {
  return encodeURIComponent(val)
    .replace(/%40/g, '@')
    .replace(/%3A/gi, ':')
    .replace(/%24/g, '$')
    .replace(/%2C/gi, ',')
    .replace(/%20/g, '+')
    .replace(/%5B/gi, '[')
    .replace(/%5D/gi, ']')
}
这样转一下是不是把 encode 了的 url 又 decode 了呢
我试过不做 replace 这些字符, 在 express 和前端 也是一样的结果.
写回答
	1回答
- 
				
				效果是一样的,这个是为了保持和官网 axios 一样的参数处理规则,它们认为这些特殊字符不应该被转义,但我也没找到相关的规范。当然 axios 也可以支持用户自定义参数处理规则,未来我们也会支持这个 feature。 022020-09-07
相似问题
