进行post提交时
1.需要进行序列化转换
// Form Data方式 (默认是这种方式)
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
2..直接提交json格式不用使用qs进行序列化转换。(后端也要修改为接收json格式)
// Request Payload方式 (不用QS转)
axios.defaults.headers.post['Content-Type'] = 'application/json';
3.
qs可通过npm install qs
命令进行安装,是一个npm仓库所管理的包。
而qs.stringify()将对象 序列化成URL的形式,以&进行拼接。
JSON是正常类型的JSON,请对比一下输出
var a = {name:'hehe',age:10}; qs.stringify(a) // 'name=hehe&age=10' JSON.stringify(a) // '{"name":"hehe","age":10}'
*************************************************
let url = 'id=1&name=chenchen' qs.parse(url) // {id:1,name:chenchen}
4.
<script> // 一般引入qs库都赋值为qs,不过浏览器全局引入的是 window.Qs对象, // 所以直接用 qs.stringify() 会报 qs undefined var qs = Qs // 配置post的请求头 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded' // qs.stringify() 这里可以做一下封装 axios.post('url', qs.stringify({ id: 1, name: 'zhangsan' })).then(function(res) { // 返回 Promise对象数据 }) </script>