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) 个答案