前端如何用axios去请求一个带有body和query参数的post接口
时间: 2024-12-18 10:31:42 浏览: 8
axios(get、post) 请求中的@requestBody @requestParams 以及headers的使用,请求拦截器、响应拦截器的封装
前端使用axios库进行POST请求并带有多参数时,你需要构造一个包含`body`(正文)和`params`(查询参数)的对象,并设置相应的HTTP头。这里是一个简单的例子:
```javascript
import axios from 'axios';
const postData = async (url, data, params) => {
try {
const config = {
method: 'post',
url: url,
// 设置body参数(通常用于JSON数据)
data: JSON.stringify(data), // 如果数据不是字符串,记得先转换为JSON格式
headers: {
'Content-Type': 'application/json', // 指定发送的数据格式为JSON
},
// 添加查询参数
params: params,
};
const response = await axios(config);
return response.data;
} catch (error) {
console.error('Error:', error);
throw error;
}
};
// 调用函数示例
const apiUrl = '/api/endpoint';
const requestBody = { key: 'value' };
const queryParams = { param1: 'value1', param2: 'value2' };
postData(apiUrl, requestBody, queryParams)
.then(result => console.log('Success:', result))
.catch(error => console.error('Failed to post:', error));
```
阅读全文