如何使用axios直接POST数组对象,避免外层嵌套documents字段
axios POST请求发送数组修复方案
问题原因
- 当前代码中传入
axios.post的第二个参数为{ documents },这是ES6对象属性的简写语法,等价于{ documents: documents },因此请求体会被包装为带外层documents字段的对象,导致后端拿到嵌套结构。 - Postman发送请求时你直接将数组填写到请求体中,因此后端可正常获取纯数组结构。
修复方法
直接将documents数组作为第二个参数传给axios.post即可,无需外层包裹对象。另外原代码中的请求URL存在格式错误,http:后缺少两个斜杠,建议一并修正。
修改后的代码如下:
async function SaveAsTemplate(documents) { const result = await axios // 修正URL格式错误,同时直接传数组作为请求体 .post('http://localhost/templates', documents) .catch(function (error) { // handle error console.warn(error.message); }); return result; }
验证说明
修改后请求体就是纯数组结构,和Postman的发送逻辑完全一致,后端可直接解析获取到数组内容,不需要再从documents字段中取值。
内容的提问来源于stack exchange,提问作者Jerry Seigle
相关产品推荐
相关产品推荐

