axios不会对url中的功能性字符进行编码
栏目: JavaScript · 发布时间: 5年前
内容简介:在请求中如果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 非法字符(转义字符)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First HTML与CSS(第2版)
Elisabeth Robson、Eric Freeman / 徐阳、丁小峰 / 中国电力出版社 / 2013-9 / 98.00元
是不是已经厌倦了那些深奥的HTML书?你可能在抱怨,只有成为专家之后才能读懂那些书。那么,找一本新修订的《Head First HTML与CSS(第2版)》吧,来真正学习HTML。你可能希望学会HTML和CSS来创建你想要的Web页面,从而能与朋友、家人、粉丝和狂热的顾客更有效地交流。你还希望使用最新的HTML5标准,能够保证随时间维护和扩展你的Web页面,使它们在所有浏览器和移动设备中都能正常工......一起来看看 《Head First HTML与CSS(第2版)》 这本书的介绍吧!