Vue 前端 put 或 post 请求发送到 Spring Boot 后端无法接收到数据的解决方法

项目场景:

Vue前端向Spring Boot后端发送put或post请求,使用axios

问题描述:

Vue前端向Spring Boot后端发送数据,使用的是post或是put请求时,后端获取不到数据,显示为空

原因分析:

axios默认post请求格式为json,但spring boot默认不使用json格式解析

解决方案:

1、后端处理

在controller方法中的参数前面加入@RequestBody
例:

@PostMapping
public void add(@RequestBody Obiect o) {
    System.out.println(o);
}

2、前端处理

将表单数据格式化为字符串

先安装qs库

npm i qs

在axios中的配置文件中加入如下配置即可

import Qs from "qs";
request.interceptors.request.use(config => {
    if (config.method === 'put' || config.method === 'post') {
        config.headers = {'Content-Type': 'application/x-www-form-urlencoded'}
        config.data = Qs.stringify(config.data)
    }
    return config
}
### 回答1: 在前端 Vue 中,你可以通过使用 `axios` 库将一个列表发送后端 Spring Boot 应用。 首先,安装 axios 库: ``` npm install axios ``` 然后,在你的 Vue 组件中,你可以创建一个列表并使用 axios 将其发送后端: ```javascript import axios from 'axios'; export default { data() { return { list: [1, 2, 3, 4, 5] }; }, methods: { sendList() { axios.post('/api/sendList', { list: this.list }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); } } }; ``` 在后端 Spring Boot 中,你可以使用以下代码接收这个列表: ```java @RestController public class MyController { @PostMapping("/api/sendList") public List<Integer> receiveList(@RequestBody List<Integer> list) { // do something with the list return list; } } ``` 请注意,这是一个简单的示例,你可以根据自己的需求对代码进行更改。 ### 回答2: 前段VUE后端Spring Boot传List可以通过以下步骤实现: 1. 在前端VUE中,首先需要创建一个包含多个元素的List。可以使用VUE数据绑定来实现,即在Vue实例的data属性中定义一个名为list的数组,例如:data: { list: [] }。 2. 在Vue的模板中,可以通过v-for指令对list进行遍历,生成对应的表单输入框或其他组件。例如,使用v-for="item in list" 来遍历list数组,并为每个元素生成一个输入框。 3. 在前端VUE中,绑定每个表单输入框的值到对应的list元素。可以使用v-model指令来实现双向数据绑定。例如,使用v-model="item" 来绑定输入框的值到list中的每个元素。 4. 当需要将list传递给后端Spring Boot时,可以使用Vue的HTTP库(例如axios)发送HTTP请求。可以通过POST或PUT方法将list作为请求的参数发送后端。例如,使用axios.post(url, list) 方法将list以POST方式发送到指定的URL。 5. 在后端Spring Boot中,可以使用@RequestParam或@RequestBody注解来接收前端传递的list。@RequestParam注解用于接收URL参数,而@RequestBody注解用于接收请求体中的JSON数据。 6. 在后端Spring Boot中,可以将接收到的list进行处理,例如存储到数据库或进行其他操作。可以在Spring Boot的控制器中定义一个接收list参数的方法来处理请求。 总结: 通过以上步骤,前端VUE可以将一个包含多个元素的List通过HTTP请求传递给后端Spring Boot,并在后端进行进一步的处理。关键是实现前端后端之间的数据传递和双向绑定,以及后端接收数据并进行处理的逻辑。 ### 回答3: 在Vue后端Spring Boot传递List时,我们可以按照以下步骤进行传递: 1. 在Vue前端页面中,首先要获取到需要传递的列表数据。可以通过组件的data属性或者通过接口请求获取数据,并将数据存储在一个名为list的数组中。 2. 在Vue方法中,创建一个POST请求,用于向后端发送数据。可以使用axios库来发送请求。在请求的参数中,将list数组作为一个对象的属性,并设置属性名为data。例如:{data: list}。 3. 使用axios发送POST请求时,需要指定后端的API地址。可以使用`axios.post('/api/endpoint', {data: list})`来发送请求。其中,`/api/endpoint`为后端的API接口地址。 4. 在后端Spring Boot中,创建一个POST请求的接口来接收来自Vue数据。在Controller层中使用`@RequestBody`注解将Vue发送过来的数据转换为Java对象。注意,Java的对象需要与Vue发送的对象结构一致,包含与Vue中list数组对应的属性名。 5. 进一步处理后端接收到的List数据,可以进行一些其他操作,例如数据库存储等。 总结:通过上述步骤,Vue可以将list数据传递给后端Spring Boot。在Vue中,我们需要将list数组作为一个对象的属性,并在发送请求时将该对象传递给后端。在Spring Boot中,我们通过接收Vue发送数据,并将其转换为Java对象进行后续处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值