Spring MVC @RequestBody不使用jquery ajax?

这是我的ajax请求

var dataModel = {name1:"value1", name2:"value2"}; $.ajax({ url: "/testURL", type: "POST", async: false, contentType: "application/json", data: dataModel, success: function(response) { } }) 

这是我在spring xml中的相关代码片段

           

这是我的控制器映射

  @RequestMapping(value = "/testURL", method = { RequestMethod.POST }) public String add(HttpServletRequest request, @RequestBody CustomObject customObject) throws Exception {} 

但我的要求甚至没有达到控制器。 一旦我删除@RequestBody CustomObject customObject就可以了。 但我想用@RequestBody将json请求映射到CustomObject,这是没有发生的。 不知道我在这里缺少什么?

实际上,当我检查request.getParameterMap()它显示为空,但是一旦我删除了contentType: "application/json"我看到参数map被填充,但仍然会得到以下错误

 `The server refused this request because the request entity is in a format not supported by the requested resource for the requested method` 

这是我的CustomObject定义

 public class CustomObject implements Serializable { private static final long serialVersionUID = 1L; private String name1; private String name2; //getters and setters } 

已经通过JQuery,Spring MVC @RequestBody和JSON – 让它一起工作但没有帮助

实际上,当我检查request.getParameterMap()时,它显示为空,但是一旦我删除了contentType:“application / json”

那是对的。 原因是contentType: "application/json" jquery在内部将数据转换为字符串。 所以没有请求参数。 如果没有contentType: "application/json" ,则默认的contentType' is form data . So data sent is converted to request parameters based on delimiters contentType' is form data . So data sent is converted to request parameters based on delimitersand =` contentType' is form data . So data sent is converted to request parameters based on delimiters

也尝试data: JSON.stringify(dataModel) ,它应该工作