Asp.NET Core API与React交互出现415 Unsupported Media Type错误求助
排查Asp.NET Core API与React交互的415 Unsupported Media Type错误
核心排查方向
1. 请求内容类型不匹配
ASP.NET Core控制器接收的内容类型与Axios发送的类型必须一致。上传文件+文本时,必须使用multipart/form-data而非application/json,两者不能混用。
2. ViewModel绑定问题
- 文件属性必须使用
IFormFile(单文件)或List<IFormFile>(多文件)类型,无需添加JSON序列化特性(因为是表单提交):
public class UploadViewModel { public string TextData { get; set; } public IFormFile File { get; set; } }
3. 控制器方法配置错误
- 必须用
[HttpPost]标记,参数前添加[FromForm]特性(不能用[FromBody],否则会按JSON解析表单数据):
[ApiController] [Route("api/upload")] public class UploadController : ControllerBase { [HttpPost] public IActionResult Upload([FromForm] UploadViewModel model) { if (model.File == null || model.File.Length == 0) { return BadRequest("文件不能为空"); } // 处理文件与文本逻辑 return Ok("上传成功"); } }
- 禁止在控制器/方法上添加
[Consumes("application/json")],否则会直接拒绝multipart/form-data请求。
4. Axios请求构造错误
- 必须用
FormData封装数据,禁止手动设置Content-Type(Axios会自动生成带边界值的multipart/form-data头,手动设置会导致ASP.NET Core无法解析):
// useState定义 const [textData, setTextData] = useState(''); const [selectedFile, setSelectedFile] = useState(null); // 文件选择事件 const handleFileChange = (e) => { setSelectedFile(e.target.files[0]); }; // 上传方法 const handleUpload = async () => { const formData = new FormData(); // 键名必须与ViewModel属性名完全一致(C#大小写敏感) formData.append('TextData', textData); formData.append('File', selectedFile); try { const response = await axios.post('/api/upload', formData); console.log(response.data); } catch (error) { console.error('上传失败:', error.response); } };
5. ASP.NET Core基础配置验证
确保Program.cs中启用了控制器与表单解析中间件(默认已启用,若有自定义配置需确认):
var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); var app = builder.Build(); app.UseRouting(); app.UseAuthorization(); app.MapControllers(); app.Run();
额外验证步骤
打开浏览器开发者工具(F12)→ Network标签页,查看上传请求:
- 确认Request Headers的
Content-Type为multipart/form-data; boundary=----WebKitFormBoundaryxxxxxx(带随机边界值)。 - 确认Form Data中包含
TextData和File的键值对,文件显示为(binary)。 - 可先简化请求:只传文件或只传文本,逐步定位问题点。
内容的提问来源于stack exchange,提问作者TulaMagar
相关产品推荐
相关产品推荐

