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

问题

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

解决

尝试多次无果,突然看一篇文章写vue中的数组不是真正的数组需要强转转化JSON.stringify
将信将疑下测试了一把,还真的传递成功了。

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

还有小BUG,JSON.stringify后,会把数组的[]括号变成字符串元素的一部分。
这个就只能自己截串、替换处理。

在这里插入图片描述

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

vue前端代码

// 共用数据
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 后端代码

@RestController
@CrossOrigin
public class MailController {
   
    @PostMapping("/basic/mail/sender")
    public R sender(String code, String[] tags){
   
        return R.success("邮件发送成功");
    }
}

相关推荐

  1. 黑豹程序员-安装docker-ce

    2023-12-16 06:36:01       55 阅读
  2. Android数据传递

    2023-12-16 06:36:01       42 阅读
  3. C 传递数组给函数

    2023-12-16 06:36:01       39 阅读
  4. 黑豹程序员-HTTP返回状态码

    2023-12-16 06:36:01       45 阅读
  5. 黑豹程序员-vue3下载文件

    2023-12-16 06:36:01       62 阅读
  6. 黑豹程序员-Spring Task实现定时任务

    2023-12-16 06:36:01       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 06:36:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 06:36:01       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 06:36:01       87 阅读
  4. Python语言-面向对象

    2023-12-16 06:36:01       96 阅读

热门阅读

  1. Tomcat、Nginx的功能对比

    2023-12-16 06:36:01       50 阅读
  2. Rust语言第一篇:我是谁?

    2023-12-16 06:36:01       59 阅读
  3. x86上运行LoongArch的环境

    2023-12-16 06:36:01       63 阅读
  4. TCP标志位

    2023-12-16 06:36:01       57 阅读