1.qs.stringify()作用是将对象或者数组序列化成URL的格式
- 对象序列化
let obj = {
methods: 'queryStu'
id: 1,
name: 'zdy'
}
qs.stringify(obj)
//methods=queryStu&id=1&name=zdy 这就是我们的传到服务器的url
- 数组序列化
let arr = [2,3]
qs.stringify({a:arr})
// 'arr[0]=2&arr[1]=3'
这种格式可以进行转为序列化,但是url中会带有数组的下标a[0]、a[1],这并不是我们一般的处理办法。常用方法如下:
// 常用并推荐使用
let arr = [2,3]
qs.stringify({a:arr},{indices:false});
// 'arr=2&arr=3' 注意这个格式,一般我们常用的格式
2. qs.parse()则就是反过来啦,将我们通过qs.stringify()序列化的对象或者数组转回去。
let url = 'id=1&name=zdy'
qs.parse(url)
// {id:1,name:zdy}
传参
在往后端传参的时候,可以选择使用表单的方式(键值对)或者json的形式进行传输
前端封装axios默认是采用表单的方式进行传输,即
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
后端如果使用@requestBody 那么就需要前端传递的是json格式,请求头里需要设置为
"Content-Type": "application/json;charset=UTF-8"