在React中用Axios向ASP.NET Core Web API传数组及可传数据类型咨询
Axios POST传递对象数组及支持数据类型说明
1. 能否通过Axios POST发送对象数组?
完全可以。Axios支持直接将JavaScript对象数组作为POST请求的请求体发送,只要后端ASP.NET Core Web API配置正确,就能正常接收。
前端示例代码
// 构造公司详情对象数组 const companyDetails = [ { id: 1, companyName: "Tech Corp", address: "123 Main St" }, { id: 2, companyName: "Global Inc", address: "456 Oak Ave" } ]; // 发送POST请求 axios.post("/api/company/batch", companyDetails) .then(res => { console.log("数组提交成功", res.data); }) .catch(err => { console.error("提交失败", err); });
注:Axios默认会把JavaScript对象序列化为JSON格式,请求头自动设置为
Content-Type: application/json,无需手动配置(除非有特殊需求)。
后端ASP.NET Core接收示例
[ApiController] [Route("api/company")] public class CompanyController : ControllerBase { // 接收对象数组 [HttpPost("batch")] public IActionResult BatchSave([FromBody] List<CompanyDetail> companyList) { if (companyList == null || companyList.Count == 0) { return BadRequest("公司详情列表不能为空"); } // 这里编写业务逻辑,比如批量保存到数据库 return Ok(new { message = $"成功接收{companyList.Count}条公司数据" }); } } // 定义对应的模型类 public class CompanyDetail { public int Id { get; set; } public string CompanyName { get; set; } public string Address { get; set; } }
2. Axios POST请求支持发送的数据类型
Axios POST请求可以发送多种类型的数据,常见的有以下几类:
- JSON格式数据:包括对象、数组、字符串、数字、布尔值等JavaScript基本类型,是最常用的请求体格式,后端通过
[FromBody]特性接收。 - 表单数据(FormData):用于提交表单或上传文件,适合包含文件的场景。示例:
后端可通过const formData = new FormData(); formData.append("companyName", "New Company"); formData.append("businessLicense", fileInput.files[0]); // 上传文件 axios.post("/api/company/upload", formData);[FromForm]接收普通字段,IFormFile接收文件对象。 - URL编码表单(x-www-form-urlencoded):传统的表单提交格式,需要用
qs库将数据序列化:import qs from "qs"; const formData = { companyName: "Old Corp", address: "789 Pine Rd" }; axios.post("/api/company", qs.stringify(formData), { headers: { "Content-Type": "application/x-www-form-urlencoded" } }); - 纯文本/二进制数据:比如直接发送字符串、Blob、ArrayBuffer等原始数据,需要手动指定
Content-Type,后端对应接收为字符串或字节数组。
内容的提问来源于stack exchange,提问作者Pankaj Shah
相关产品推荐
相关产品推荐

