当使用 axios 向后台传递数组作为参数时,可以通过两种方法来实现。
方法一:使用 URLSearchParams 对象
在前端将数组转换为 URLSearchParams 对象,再通过 axios 发送请求。具体代码如下:
import axios from 'axios';
const params = new URLSearchParams();
const array = [1, 2, 3, 4];
array.forEach((item) => {
params.append('key', item);
});
axios.post('/api/test', params);
前端将数组转换为 URLSearchParams 对象后,后端可以通过 req.body.get('key')
来获取数组,如下所示:
app.post('/api/test', (req, res) => {
const array = req.body.getAll('key');
console.log(array); // [ '1', '2', '3', '4' ]
});
方法二:使用 JSON 序列化
在前端将数组通过 JSON 序列化后,再通过 axios 发送请求。具体代码如下:
import axios from 'axios';
const array = [1, 2, 3, 4];
const data = JSON.stringify({
array
});
axios.post('/api/test', data, {
headers: {
'Content-Type': 'application/json'
}
});
前端通过 JSON 序列化将数组传递给后端后,后端可以通过 req.body.array
来获取数组,如下所示:
app.post('/api/test', (req, res) => {
const array = req.body.array;
console.log(array); // [1, 2, 3, 4]
});
需要注意的是,在使用 JSON 序列化方法时,需要在请求头中设置 Content-Type
为 application/json
,否则后端将无法正确解析请求体。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:axios向后台传递数组作为参数的方法 - Python技术站