请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于encode的转义?

黄老师,有一个问题想要请问一下:

function encode(val) {
  return encodeURIComponent(val).
    replace(/%40/gi, '@').
    replace(/%3A/gi, ':').
    replace(/%24/g, '$').
    replace(/%2C/gi, ',').
    replace(/%20/g, '+').
    replace(/%5B/gi, '[').
    replace(/%5D/gi, ']');
}

axios是这样做encode的,但是我并不了解它遵照的是哪一份规范?似乎对于params的哪些东西需要转义,哪些东西不需要的问题,好像并没有一个统一的意见?
https://github.com/axios/axios/issues/1443 类似这样的issue也有不少,许多人需要自定义paramsSerializer 来解决问题。
我在mdn上好像也没找到比较确切的答案? 能请黄老师稍稍解释下吗?

正在回答

1回答

ustbhuangyi 2019-05-13 10:19:28

其实这块就是遵循了 axios 默认的一套转义规则,至于规范,我也没有找到。不过正如你说的 axios 支持了自定义 paramsSerializer 来让用户自己定义规则,这块在后面的扩展章节会实现。

我的一个猜测是 axios 团队认为这些特殊字符是可以直接放在 url 上的,不需要被转义。

1 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信