前端向后端传递数据用qs库解决问题系列

在使用axios进行HTTP请求时,遇到问题:1)传递数组时自动添加[],通过Qs库的配置可以避免;2)需要将payload转换为fromData格式以满足服务端要求。解决方案包括使用Qs.stringify并设置indices选项为false,以及在post请求中序列化payload。

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


引入QS库

npm install qs
import qs from 'qs'

问题1:axios 向后端传递数组会默认给数组的每个参数添加一个“[]“,如何解决这个问题?

post请求去掉"[]"

axios.post("",Qs.stringify(this.userIds,{indices:false})

get请求去掉"[]"

axios.delete("user/deleteUserById", {
                    params: {
                        userIds: this.userIds
                    },
                    paramsSerializer: {
                        serialize: params => {
                            return Qs.stringify(params, {indices:false})
                        }
                    }
                })

问题2:服务端只能接收from Date请求,客户端post请求传递数据为pay load请求

QS将pay load请求序列化为from Date请求

  this.$axios
                .post('login', this.$qs.stringify(this.user))
                .then(response=>{
                    let result=response.data;   
                })
                .catch(error=>{
                    alert(error)
                })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@活着笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值