axios使用post提交方式

  进行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>

 

上一篇:JavaScript中的深拷贝与浅拷贝


下一篇:4、JSON.stringify()---将JavaScript 对象转换为json字符串