【问题标题】:Spring Ajax JQuery JacksonSpring Ajax JQuery 杰克逊
【发布时间】:2026-02-21 20:35:01
【问题描述】:

我的方法有什么问题。

Java 映射:

@POST
@Path("/receive")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public void consumeJSONList(@RequestBody List<Question> clientList) {
    String output = "consumeJSONList Client : " + clientList.toString() + "\n\n";
    System.out.println(output);
}`

Ajax 调用:

function addData(x) {

var x='[{"id":12,"email": "2","lang": "es"}]';
    $.ajax({
        type: 'POST',
        url: "rest/question/receive",
        header : {
            "Content-Type":"application/json"
        },
        data: x,
        success: function(data, textStatus, jqXHR){
            alert('Wine created successfully');
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log(jqXHR);
            alert(jqXHR+'addWine error: ' + textStatus+"errorThrown"+errorThrown);
        }
    });
}

我可以在 google post man 中使用相同的数据点击相同的 url,但是当使用 ajax 时调用其抛出 415(不支持的媒体类型)

请帮助创建一个可以接受 java 对象列表并进行处理的控制器

【问题讨论】:

  • @Path("/receive")

标签: java jquery ajax spring jackson


【解决方案1】:

正如jQuery docs 所说,您应该尝试以下方法:

替换……

header : {
    "Content-Type":"application/json"
},

…与…

dataType: 'json',

...并确保“/receive”前面的服务器上下文路径确实是“rest/question”。根据情况,前导斜杠“/rest/question/receive”也值得一试。

【讨论】: