You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Angular端向.NET Core API传递Form Data数据遇到问题如何解决?

问题根因

你当前使用的手动指定multipart/form-data请求头的代码是问题的直接诱因。multipart/form-data类型的请求必须附带boundary分隔符参数,用来区分表单内不同字段的边界。浏览器在发送FormData类型的请求时,会自动生成随机boundary值并拼接在Content-Type头中,如果你手动硬编码该请求头,会覆盖浏览器的自动填充逻辑,后端.NET Core接收到请求后无法正确拆分表单字段,进而抛出解析异常。

修复步骤
  • 移除手动配置的Content-Type请求头,直接将FormData实例作为请求体传给Angular的HttpClient即可,框架会自动识别请求体类型,补充带正确boundary的请求头:
// 初始化FormData并填充字段
const formData = new FormData();
formData.append('file', 上传的文件对象, 文件名);
formData.append('otherParam', '参数值');

// 直接发送请求,不需要额外配置headers
this.http.post('你的.NET Core接口地址', formData).subscribe({
  next: (res) => console.log('请求成功', res),
  error: (err) => console.error('请求失败', err)
});
  • 检查.NET Core接口配置,确保接收参数前加[FromForm]特性,示例如下:
// 接口定义
[HttpPost]
public async Task<IActionResult> SubmitForm([FromForm] FormDataDto request)
{
    // 业务逻辑处理
    return Ok();
}

// 接收DTO定义
public class FormDataDto
{
    public IFormFile File { get; set; }
    public string OtherParam { get; set; }
}
  • 若仍有异常,可参考报错截图定位具体问题:
    异常报错示例

内容的提问来源于stack exchange,提问作者Patel Dharmendra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 03:24:05