axios请求后端数据(post请求)qs序列化

这篇博客介绍了如何在Vue中使用QS库来处理axios的POST请求,确保数据以application/x-www-form-urlencoded格式发送。通过qs.stringify()将对象序列化为URL形式,解决前后端交互时的数据格式问题。同时提供了两种不同的axios请求写法,演示了如何设置headers和使用QS库进行数据转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装qs
npm install qs --save 命令进行安装
1.qs.parse() 将url解析成对象的形式
2.qs.stringify() 将对象序列化成url的形式,以&进行拼接
qs.stringify() 和 JSON.stringify()的区别

var a = {
	name:"小明",
	age:20
}
1.qs.stringify序列化结果: 
	name=小明&age=20
	
2.JSON.stringify的结果是:
	"{"a":"小明","age":20}"

axios请求默认的是application/json:这种格式 {name:"小明",age:20}

但是有时候后端需要的是表单提交方式,(post请求)post表单请求提交时,使用的是:
content-type就是application/x-www-form-urlencoded,
所以需要将ajax发送请求的application/json改为application/x-www-form-urlencoded
那么content-type就是application/x-www-form-urlencoded 
使用qs进行序列化传输的样式是formdata格式的参数 这样的格式:name=xxx&age=xxx

所以采取以下方法:
vue中使用:
1.安装完之后在需要的组件页面引入qs
	import qs from 'qs';        //es6语法引入
	const qs = require('qs');    //CommonJS语法引入 
2. data(){
        return {
            data:{
                uname:'用户1',
                pwd:'123456'
            }
        }
    },
    methods:{
        register(){
            //axios请求
            //第一种写法
            this.$http({
                method:'post',
                headers:{
                    'content-type':'application/x-www-form-urlencoded'
                },
                url:'地址',
                data:qs.stringify(this.data),

            }).then((res)=>{
                console.log(res)
            })
        },
        login(){
            //axios请求
            第二种写法
            this.$http.post('/foo',qs.stringify(this.data)).then((res)=>{
                console.log(res)
            })
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值