axios不会对url中的功能性字符进行编码
栏目: JavaScript · 发布时间: 6年前
内容简介:在请求中如果url包括特殊字符的话,可能会导致接口接收参数失败,所以前端一般会对特殊字符进行encode,方法有两种对整个url进行编码,会避开url中的功能性字符,例如,& ? [ ]编码前:
在请求中如果url包括特殊字符的话,可能会导致接口接收参数失败,所以前端一般会对特殊字符进行encode,方法有两种
- encodeURI()
对整个url进行编码,会避开url中的功能性字符,例如,& ? [ ]
编码前: http://10.10.67.67 :8080/api/chain/basic/users?params=+[
编码后: http://10.10.67.67 :8080/api/chain/basic/users?params=%2b[
- encodeURIComponent()
对某个参数进行编码,会编码所有特殊字符
编码前: http://10.10.67.67 :8080/api/chain/basic/users?params=+[
编码后: http://10.10.67.67 :8080/api/chain/basic/users?params=%2b%5B
在axios中就会对get请求的整个url进行encodeURI,导致有些get方法不能传[],所以在请求拦截器中可以对get方法单独处理,避开axios的encodeURI
myAxios.interceptors.request.use(
config => {
let url = config.url
// get参数编码
if (config.method === 'get' && config.params) {
url += '?'
let keys = Object.keys(config.params)
for (let key of keys) {
url += `${key}=${encodeURIComponent(config.params[key])}&`
}
url = url.substring(0, url.length - 1)
config.params = {}
}
config.url = url
return config
},
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 来聊聊非功能性需求
- 非功能性需求不要成项目的坑
- 非功能性架构和高可用性设计(200731)
- slf4j-spring-boot-starter v1.3.1 发布,功能性增强
- 字符串、字符处理总结
- XML 非法字符(转义字符)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
博客秘诀:超人气博客是怎样炼成的
Darren Rowse、Chris Garrett / 向怡宁 / 人民邮电出版社 / 201005 / 39.00元
作为Web 2.0的新生事物的博客,如今已蓬勃发展,呈燎原之势,业已成为许多人的一种生活方式。中国从事博客写作的人数已达千万级,各类博客网站不可胜数。 然而,为什么有的博客人气鼎盛,拥趸众多,有的博客却门前冷落,少人问津呢?究竟应该怎样写好自己的博客,才能让它吸引更多访客的关注呢?博客网站还能为我做什么呢? 本书的两位作者长期主持知名博客站点ProBlogger.net,指导了成千上万......一起来看看 《博客秘诀:超人气博客是怎样炼成的》 这本书的介绍吧!