黑豹程序员-axios+springmvc传递数组

问题

奇怪的现象,axios在往后台传递数组时,springmvc竟然接收不到

解决

尝试多次无果,突然看一篇文章写vue中的数组不是真正的数组需要强转转化JSON.stringify

将信将疑下测试了一把,还真的传递成功了。

不光要JSON.stringify还要使用qs.stringify(把参数转为查询串)

还有小BUG,JSON.stringify后,会把数组的\[\]括号变成字符串元素的一部分。

这个就只能自己截串、替换处理。

实现前台传递一个单值和一个数组

vue前端代码

bash 复制代码
// 共用数据
import axios from '../sys/frame/axios.js'
import qs from 'qs'

import { serverURI } from './server-uri.js'
const server_uri = serverURI("basic")

//将参数转换为查询参数串提交
//注意下面坑,先要转换为js真正的数组,否则接参为null
export const SendMail = async (mails)=>{
	//数据非常怪异,转换字符串后,前面后面的双引号无用
	let tmp = JSON.stringify(mails).replaceAll("\"","")
	tmp = tmp.substring(1, tmp.length-1)		//去掉数组俩边的[和]
	let data = {code: '001', tags: tmp}

	console.log(mails)
	console.log(tmp)

	axios.post(server_uri+'/mail/sender',  qs.stringify(data)).then(resp => {
		console.log(resp.data)
	})
}

SpringMVC 后端代码

bash 复制代码
@RestController
@CrossOrigin
public class MailController {
    @PostMapping("/basic/mail/sender")
    public R sender(String code, String[] tags){
        return R.success("邮件发送成功");
    }
}
相关推荐
无糖可可果39 分钟前
从零读懂一个 Next.js 全栈笔记应用
前端
Maxkim39 分钟前
DeepSeek Harness 源码深度分析:像 VS Code 一样插件化的 Agent 框架
前端·架构
喜欢睡觉44 分钟前
从零看懂一个 Next.js 笔记应用
前端
cindershade1 小时前
从零实现画布「双击创建节点」:一个 VueFlow 项目的交互全记录
前端
YHL1 小时前
🚀 SSE 服务器发送事件与 BFF 层实战
前端·后端
今日无bug1 小时前
HTML5 Canvas:从画图到游戏开发
前端·canvas
cindershade1 小时前
用 Web Workers 优化前端重计算任务:避免主线程卡顿的实战方案
前端
爱丶不疚1 小时前
搞不清 CommonJS 与 ESM,你是否也有这些疑问🤔
前端·node.js
YIAN1 小时前
http无状态?State来展示!从基础路由到鉴权守卫,吃透 SPA 前端路由核心
前端·react.js
__zRainy__1 小时前
Node系列 · Node基础:全局变量与全局对象
开发语言·前端·javascript