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

使用FastAPI与TypeScript Fetch API上传文件至S3遇请求体解析错误

解决Fetch API发送FormData到FastAPI时的"There was an error parsing the body"错误

问题根源

  • 手动设置Content-Type破坏了解析逻辑:当使用FormData作为请求体时,浏览器会自动生成包含boundary的Content-Type头(格式类似multipart/form-data; boundary=----WebKitFormBoundaryabc123),你手动写死multipart/form-data会丢失这个关键的boundary信息,导致FastAPI无法正确拆分表单内容。
  • 混入了Fetch不支持的jQuery参数:async: false、contentType: false、processData: false都是jQuery.ajax的专属配置项,Fetch API完全不识别这些参数,留着只会造成不必要的配置干扰。

修正后的TypeScript代码

const formData = new FormData();
formData.append('file', files[0]);

const requestOptions = {
    method: requestMethod,
    headers: {
        'Authorization': `Bearer ${token}`,
        // 不要手动设置Content-Type,交给浏览器自动处理
    },
    body: formData
};

const response = await fetch(url, requestOptions);

修正说明

删掉手动指定的Content-Type后,浏览器会自动补上带正确边界标识的请求头,FastAPI就能正常解析上传的文件了。那些Fetch不支持的参数直接移除即可,不会影响请求功能。

内容的提问来源于stack exchange,提问作者nihar saini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:23:24