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是支持函数和对象两种参数的。但是文档中却没有,如果我没找错文档的话,那只能说文档跟代码有脱节,滞后了。

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

相关推荐
777VG5 小时前
PostgreSQL +martin将多张表输出成一个 MVT
前端·数据库·postgresql
mayaairi6 小时前
JS循环语句深度解析:嵌套for、while与do...while
开发语言·前端·javascript
To_OC6 小时前
啃完流式输出:从一个卡顿的 LLM 接口开始,我搞懂了数据流到底怎么 “流”
前端·javascript·llm
阳光是sunny6 小时前
LangGraph实战教程:defer延迟节点——让收尾工作自动排到最后
前端·人工智能·后端
kyriewen7 小时前
我用了三周Claude Code Skills——总结出5条铁律,第3条最反直觉
前端·ai编程·claude
阳光是sunny7 小时前
LangGraph实战教程:控制流详解
前端·人工智能·后端
格尔曼Noah8 小时前
Safari浏览器中如何只允许指定网站下载
前端·safari
用户059540174468 小时前
用了3年Redis,才发现我一直没搞懂缓存一致性测试
前端·css
swipe8 小时前
07|(前端转后全栈)为什么后端也要缓存?从前端缓存思维理解 Redis
前端·后端·全栈
IT小盘9 小时前
05-企业项目统一接入多个大模型-适配器模式实战
前端·人工智能·适配器模式