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

Spring Ajax接收List<Question>数据异常,请求排查实现问题

排查Spring+JQuery Ajax+Jackson接口数据接收问题

我帮你梳理下代码里的几个关键问题,这些应该就是导致无法正常接收数据的原因:

1. Java接口注解冲突问题

你同时混用了JAX-RS注解(@POST、@Path、@Consumes)和Spring MVC注解(@RequestBody),这两种注解属于不同的Web框架体系,不能直接混用:

  • 如果是用Spring MVC开发接口,应该替换成Spring的专属注解:
@PostMapping(value = "/receive", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public void consumeJSONList(@RequestBody List<Question> clientList) {
    String output = "consumeJSONList Client : " + clientList.toString() + "\n\n";
    System.out.println(output);
}
  • 如果是用JAX-RS(比如Jersey)框架,应该去掉@RequestBody,直接接收列表(需要确保Jackson支持JAX-RS的实体序列化):
@POST
@Path("/receive")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public void consumeJSONList(List<Question> clientList) {
    String output = "consumeJSONList Client : " + clientList.toString() + "\n\n";
    System.out.println(output);
}

2. JQuery Ajax代码的多处错误

你的Ajax代码存在语法和参数配置错误,直接导致请求无法正确传递数据:

  • header应该是复数headers,且Content-Type值不完整,要写全application/json
  • 缺少data参数,服务器根本接收不到你的请求体内容
  • 变量x重复定义,字符串形式的JSON最好转成JS对象再传递(或者直接定义对象数组更清晰)
  • Ajax配置不完整,缺少闭合的大括号,建议加上调试用的回调函数

修正后的Ajax代码:

function addData() {
    // 直接定义JS对象数组,避免字符串转义的麻烦
    var dataList = [{
        "id": 12,
        "email": "2",
        "lang": "es"
    }];
    $.ajax({
        type: 'POST',
        url: "rest/question/receive",
        headers: { 
            "Content-Type": "application/json"
        },
        data: JSON.stringify(dataList), // 把JS对象序列化为JSON字符串
        success: function(response) {
            console.log("请求成功");
        },
        error: function(xhr, status, error) {
            console.log("请求失败: " + error);
        }
    });
}

3. 额外调试注意事项

  • 确保你的Spring项目已经引入Jackson相关依赖(比如spring-boot-starter-web默认包含),用来处理JSON的序列化和反序列化
  • 检查Question类是否有正确的无参构造函数,以及对应的getter/setter方法——Jackson需要这些来实例化对象
  • 可以先用Postman测试接口是否正常,排除前端Ajax的问题后再调试前端代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:28:45