当前位置: 首页 > news >正文

4.通过axios给后端传输数据时报415

1.为啥会出现415错误

错误定义
状态码: 415 Unsupported Media Type
含义:“格式不拒”。前端发送的数据格式(通常是 JSON),后端服务器无法理解、无法处理或配置不支持,因此直接拒收。
一句话核心原因:后端没有配置好能把前端发来的 JSON 数据“翻译”成 Java 对象的转换器(Jackson)。

2.排查三部曲(按顺序检查)

  • ✅ 第一步:查前端(确保数据是 JSON)

    1. 检查 Payload:数据必须是标准的 JSON 格式(如 { "name": "ylf", "age": 19 }),不能是 name=ylf&age=19。
      image

      如果出现这种,说明前端发给后端的不是Json格式
      使用axios.post向后端发送json格式数据时候,直接使用对象形式,不用使用JSON.stringify(userInfo)将其转为json字符串在发送。否则便会出现以下错误,aixos.post底层会自动完成对象转化为json字符串。
      image

    2. 检查 Header:请求头必须包含 Content-Type: application/json。
      image

    注意:如果用 jQuery,需显式设置 contentType 并使用 JSON.stringify()

  • ✅ 第二步:查依赖(确保有翻译工具)
    检查 pom.xml,必须引入 Jackson 依赖(Spring MVC 默认不含 JSON 处理库)。

    <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.2</version> 
    </dependency>
    
  • ✅ 第三步:查后端配置(最容易漏!)
    即便有了依赖,Spring 默认也不会开启 JSON 转换,必须手动开启。
    A. 配置文件 (spring-mvc.xml): 必须添加注解驱动,这会自动注册 Jackson 转换器。

    <mvc:annotation-driven />
    
    • 重点<mvc:annotation-driven />随便放在哪个xml文件都可以吗?

      绝对不行!❌ 不能随便放。

      1. 为什么不能随便放?(父子容器原理)
        Spring 的应用通常会有两个“圈子”(容器):
        父容器(Root Context):通常由 applicationContext.xml 加载。负责 Service(业务逻辑)、Dao(数据库操作)。它像是“后勤仓库”。
        子容器(Web Context):由 Spring MVC 的 DispatcherServlet 加载(比如叫 spring-mvc.xml)。负责 Controller(接收请求)、视图解析。它像是“前台接待”。
        关键点<mvc:annotation-driven /> 这个开关,是专门用来教 Controller(前台) 如何说话(处理 JSON)的。 如果你把它配在 父容器(后勤仓库) 里,前台根本不知道这回事,依然不会处理 JSON,所以还是会报 415

    B. 代码注解 (Controller): 接收参数时必须告诉 Spring 去读取 Body 中的 JSON。

    // ★★★ 必须加 @RequestBody
    @RequestMapping("/add")
    public String add(@RequestBody User user) {return "success";
    }
    
http://www.jsqmd.com/news/94082/

相关文章:

  • 【调研报告】RL有哪些数据技巧?
  • 视觉opencv学习笔记Ⅴ-数据增强(2)
  • 大模型开发范式变革:从单兵作战到多智能体团队协作(Autogen/CrewAI/LangGraph全解析)
  • 最近在研究Amesim的电池热管理模块,发现这玩意儿真的挺有意思。如果你也在搞这块,可能会遇到一些坑,今天就来聊聊我的一些学习心得,顺便分享几个模型
  • TCP 与 UDP 的全面解析:从基础概念到实际应用 - 详解
  • 2025年末总结:金刚砂/碳化硅/活性炭实力新锐推荐——品质为王,细分致胜 - 深度智识库
  • LobeChat能否取代商业AI产品?开源社区的最新讨论热点
  • 集装箱房品牌排名 TOP 榜单揭秘!诚栋营地凭全维硬实力领跑,成行业优选标杆 - 资讯焦点
  • 复旦哲学公开课-中国佛教史-导论
  • 2025年12月干冰批发公司综合实力排行榜:专业评测对比分析与选购决策指南 - 品牌推荐
  • 微服务架构设计 - 高并发缓存设计
  • PyTorch安装失败?试试这个预配置CUDA工具链的基础镜像
  • LobeChat能否实现负载均衡?高可用架构设计建议
  • LobeChat能否实现数据库持久化存储?避免数据丢失的关键
  • Miniconda安装后无法使用conda命令?原因与解决方法
  • Locust:可能是一款最被低估的压测工具
  • 【Java毕设项目】基于微信小程序的仓储管理系统+SpringBoot后端实现
  • 渗透测试流程是什么?这篇给你讲清楚!
  • 从零开始搭建Qwen3-14B推理服务的Docker配置指南
  • 2025年12月深圳劳动仲裁律师推荐榜:专业能力与服务价值综合评测指南 - 品牌推荐
  • LobeChat部署在云服务器上的最佳资源配置建议
  • 曙光屋sgwbox N3曝命令注入漏洞CVE-2025-14705,攻击者可远程利用
  • 在AI助手唾手可得的时代,构建生态兼容性成为新蓝海——某知名AI编程助手协作框架需求洞察
  • 从GitHub获取Qwen3-14B开源代码并本地运行的全流程
  • GPT-OSS-20B性能实测:3.6B活跃参数如何实现低延迟AI推理
  • vivado时序报告中slack是如何计算的?如何优化时序?
  • 查看模拟器图片位置--测试图片上传
  • 2025年五大有名的品牌背书公司推荐,专业品牌口碑背书企业全 - myqiye
  • LobeChat插件系统详解:如何扩展AI助手的无限可能?
  • AutoGPT是否需要持续人工干预?我们做了72小时连续测试