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

AJAX向Java后端发送JSON对象失败,请求排查语法及后端问题

前端AJAX发送JSON到Java后端的问题排查

先帮你梳理下前端代码的问题和后端错误的根源:

前端代码的问题(语法/配置错误)

你的前端代码里有两个明显的问题,可能先导致AJAX请求本身无法正常工作:

  • 重复且错误引入jQuery:你同时引入了CDN的jQuery和本地的scripts/jquery.min.js.download,后者的后缀是.download,明显是下载后没修改文件名,浏览器根本无法正确加载这个脚本。而且重复引入jQuery会导致冲突,建议直接删掉本地的那个脚本标签,只保留CDN的引入。
  • 当你取消注释contentType: "application/json;charset=utf-8"时,AJAX的语法是完全正确的:用JSON.stringify(myJSon)把JS对象转成JSON字符串作为请求体,同时告诉后端请求内容是JSON格式,这部分完全符合AJAX发送JSON请求的规范。

后端错误的根源

你看到的INFO: Could not find grammar element for class java.lang.String错误,完全是后端的配置/代码问题,和前端语法没有关系。这个错误通常出现在Java后端(比如Spring MVC)处理JSON请求时,常见原因包括:

  • 后端缺少JSON解析依赖:比如Spring项目没有引入Jackson相关的依赖(jackson-databind),导致框架无法解析JSON请求体。
  • 接口参数接收方式错误:
    • 如果你的后端接口是用@RequestBody String jsonStr来接收JSON字符串,可能框架的消息转换器没有配置支持直接把JSON解析成String类型;
    • 更合理的做法是定义一个和前端JSON结构对应的POJO类(比如包含name、age、city字段的User类),然后用@RequestBody User user来接收请求体,这样框架会自动把JSON解析成实体对象。
  • 后端消息转换器配置异常:比如Spring没有正确注册MappingJackson2HttpMessageConverter,导致无法处理JSON格式的请求。

建议的修复步骤

  1. 先修复前端的jQuery引入问题,确保AJAX能正常发起请求;
  2. 后端这边:
    • 确认已添加JSON解析依赖(比如Maven中添加jackson-databind的依赖);
    • 调整接口的参数接收方式,优先使用POJO类配合@RequestBody注解;
    • 检查Spring配置,确保JSON消息转换器已正确配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:36:02