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

Flask接收JSON POST请求遇Unsupported Media Type错误排查

问题排查思路

以下是几种可能导致该错误的原因及解决办法:

  • 请求体不是合法JSON
    虽然你设置了Content-Type: application/json,但如果实际发送的请求体不是标准JSON格式,Flask依然无法解析。比如JSON里存在语法错误(多余逗号、引号不闭合),或者包含了不能被JSON序列化的类型(如undefined、函数)。
    解决:前端发送前务必用JSON.stringify()处理数据,并且检查序列化后的字符串是否合法(可以用在线JSON校验工具验证)。

  • Flask的get_json()严格模式冲突
    Flask的request.get_json()默认开启strict=True,会严格匹配Content-Type的值必须是application/json。如果你的请求头里的Content-Type带有额外参数(比如application/json; charset=utf-8),就会触发这个错误。
    解决:要么在Flask里改用request.get_json(strict=False),要么确保前端请求头的Content-Type只写application/json,不带任何附加信息。

  • 请求头被中间件/代理篡改
    如果你的请求经过了Nginx、CDN之类的代理或中间件,它们可能会修改Content-Type头(比如自动添加字符集参数),导致Flask内部检测到的头和你预期的不一致。
    解决:在Flask接口里直接打印request.headers.get('Content-Type')的完整值,确认实际收到的头内容,再针对性调整。

  • 前端fetch配置存在隐藏问题
    比如你不小心用了FormData作为请求体(浏览器会自动覆盖Content-Type为multipart/form-data),或者headers的设置被其他代码覆盖。
    解决:检查前端代码,确保body是JSON.stringify(yourData),并且headers的配置正确,示例:

    fetch('/AddPosition', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ key: 'value' })
    })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:19:55