有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java没有在Spring MVC应用程序的控制器中接收ajax请求?

我正在尝试使用Spring MVC创建一个任务读取器。 任务中有三个字段:id、描述和截止日期

现在在“添加按钮”上单击,我试图向Spring控制器发送一个Ajax调用。但我没有在服务器端收到请求

以下是Ajax请求代码:

function doAjaxPost() {
    var id = $('#id').val();
    var desc = $('#description').val();
    var dueDate = $('#dueDate').val();
    var json = { "id" : id, "description" : desc, "dueDate": dueDate};
    $.ajax({
    type: "POST",
    contentType : "application/json",
    url: "/addTask",
    data : JSON.stringify(json),
    dataType : 'json',

    success: function(response){
    $('#info').html(response);
    },
    error: function(e){
    alert('Error: ' + e);
    console.log(e);
    }
    });
    }

控制器代码:

@RequestMapping(value = "/addTask", method = RequestMethod.POST)
    public @ResponseBody String addTask(@RequestBody Task task) {
        String returnText;
        System.out.println(task.getDescription() + " " + task.getDueDate());
        System.out.println(task);
        // taskList.add(task);
        returnText = "User has been added to the list. Total number of task are " + taskList.size();

        return returnText;
    }

我在Chrome控制台中收到以下错误消息

服务器拒绝了此请求,因为请求实体的格式不受请求方法的请求资源支持。“

有人能告诉我哪里出了错吗

更新:

我可以用另一种方式:

@RequestMapping(value = "/addTask" , method=RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody String addTask(@RequestBody String task){
        Gson gson = new Gson();
        Task t = gson.fromJson(task, Task.class);
        taskList.add(t);
        ObjectMapper mapper = new ObjectMapper();
        String jsontastList = gson.toJson(taskList);
        return jsontastList;
    }

但我仍然想知道不需要显式地将json转换为Java对象的方式


共 (0) 个答案