Axios get请求数组参数移除默认的[]

列表查询条件中的状态需要支持多选,字段就有原来的number变成了number[]。在Element Plus的加持下,给el-select添加一个multiple就解决了,打完收工。额,还是测试一下吧:)。选择的状态变了,数据没变呀,遂找后端,经过调查,说是不能参数中不能有[],否则不能正确解析这个参数。

我隐约记得若干年前,前端用jquery跟后端php对接时就遇到过类似的问题(也可能是我记错了)。现在用的是Axios,我觉得Axios应该会把这个作为选项暴露出来,让使用者可以切换。遂去官网找配置

大概就是改一下paramsSerializer了,那么怎么改呢?又搜了一下,说是可以改成

javascript 复制代码
paramsSerializer: function(params) {
	return qs.stringify(params, { arrayFormat: 'repeat' });
}

遂安装qs。真能解决问题,就这样吧。

过了几天,也就是今天,我突然想把这个记录下来,于是就想把Axios中的逻辑搞清楚,就去翻代码,无意间看到这段代码(toFormData.js),感觉可以把indexes传成null,就试了试,果然成了

如下

javascript 复制代码
paramsSerializer: {
	indexes: null,
}

从源码中知道paramsSerializer是支持函数和对象两种参数的。但是文档中却没有,如果我没找错文档的话,那只能说文档跟代码有脱节,滞后了。

如果对你有帮助,请帮忙点赞,嘻嘻:)

相关推荐
徐小夕@趣谈前端12 小时前
Web文档的“Office时刻“:jitword共建版2.0发布!让浏览器变成本地生产力
前端·数据结构·vue.js·算法·开源·编辑器·es6
Data_Journal13 小时前
如何使用 Python 解析 JSON 数据
大数据·开发语言·前端·数据库·人工智能·php
德育处主任Pro13 小时前
纯前端网格路径规划:PathFinding.js的使用方法
开发语言·前端·javascript
墨笔.丹青13 小时前
基于QtQuick开发界面设计出简易的HarmonyUI界面----下
开发语言·前端·javascript
董世昌4113 小时前
深度解析浅拷贝与深拷贝:底层逻辑、实现方式及实战避坑
前端·javascript·vue.js
扶苏100213 小时前
vue使用event.dataTransfer实现A容器数据拖拽复制到到B容器
前端·vue.js·chrome
David凉宸13 小时前
Vue 3 项目的性能优化策略:从原理到实践
前端·vue.js·性能优化
小马_xiaoen13 小时前
Proxy 与 Reflect 从入门到实战:ES6 元编程核心特性详解
前端·javascript·ecmascript·es6
hoiii18714 小时前
MATLAB SGM(半全局匹配)算法实现
前端·算法·matlab
会编程的土豆15 小时前
新手前端小细节
前端·css·html·项目