使用@PostMapping并用@RequestParam接受参数时,前端vue怎么写axios请求传值
时间: 2023-10-25 16:18:54 浏览: 37
在Vue中使用axios发送POST请求并用@RequestParam接受参数,可以这样写:
```javascript
// 在Vue组件中引入axios
import axios from 'axios';
// 通过axios发送POST请求
axios.post('/api/post', {
// 传递的参数
name: '张三',
age: 20
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
```
其中,`/api/post` 是后端接口的地址,`name` 和 `age` 是传递的参数名和值。
需要注意的是,如果要在请求头中加入 CSRF Token,可以在 `main.js` 中设置全局的axios默认值:
```javascript
import axios from 'axios';
axios.defaults.headers.common['X-CSRF-TOKEN'] = 'token';
```
其中,`token` 是你的CSRF Token的值。
相关问题
vue中axios发送post请求,后端(@RequestParam)接不到参数
可能是因为你没有正确地设置请求头或请求体。首先,确保你在发送post请求时,设置了请求头的 Content-Type 为 application/json,这样后端才能正确解析请求体中的参数。其次,确保你在请求体中正确地设置了参数,例如:
```
axios.post('/api/xxx', {
param1: 'value1',
param2: 'value2'
}).then(response => {
// handle response
}).catch(error => {
// handle error
})
```
在后端接收参数时,使用 @RequestBody 注解而不是 @RequestParam 注解,例如:
```
@PostMapping("/api/xxx")
public void handleRequest(@RequestBody Map<String, String> params) {
String param1 = params.get("param1");
String param2 = params.get("param2");
// handle params
}
```
注意,这里使用了 Map<String, String> 来接收参数,因为请求体中传递的参数是一个 key-value 对象。如果你需要传递复杂的数据结构,可以使用相应的 Java 对象来接收参数。
后端 @RequestParam接收 vue前端怎么请求
在 Vue 前端中,可以使用 Axios 或者 Fetch 等 HTTP 请求库来向后端发送请求。以下是使用 Axios 发送 GET 请求并带上参数的示例代码:
```javascript
import axios from 'axios';
axios.get('/api/endpoint', {
params: {
param1: 'value1',
param2: 'value2'
}
}).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});
```
其中,`/api/endpoint` 是后端的接口地址,`params` 是 GET 请求的参数,key-value 形式的对象。后端使用 `@RequestParam` 注解来接收这些参数。