Query String Parameters 、Form Data 、 Request Payload 三种格式的区别。主要是因为 Content-Type(用于表明发送数据流的类型) 与请求方式 method 不同,导致传递的数据格式不同。
xhr.setRequestHeader("Content-type","application/json;charset=utf-8")
2.jq ajax:
$.ajax({
url: '/api/'
methods: 'post'
contentType: "text/xml"
})
3.axios:
axios.post(url, qs.stringify(params), {
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
}).then(res => res.data)
或者 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
JSON.stringify()
axios中 qs.stringify()将对象或者数组序列化成URL的格式,对象序列化
let obj = {
methods: 'query_stu'
id: 1,
name: 'chenchen'
}
qs.stringify(obj)
// methods=query_stu&id=1&name=chenchen 这就是我们的传到服务器的url
let arr = [2,3]
qs.stringify({a:arr})
// 'a[0]=2&a[1]=3' url中会带有数组的下标a[0]、a[1],这并不是我们一般的处理办法
// 常用并推荐使用
let arr = [2,3]
qs.stringify({a:arr},{indices:false});
// 'a=2&a=3' 注意这个格式,一般使我们常用的格式哦~
其中:indices:false,去除默认处理的方式