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 非法字符(转义字符)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Growth Hacker Marketing
Ryan Holiday / Portfolio / 2013-9-3 / USD 10.31
Dropbox, Facebook, AirBnb, Twitter. A new generation of multibillion dollar brands built without spending a dime on “traditional marketing.” No press releases, no PR firms, and no billboards in Times ......一起来看看 《Growth Hacker Marketing》 这本书的介绍吧!