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 delimiters
& and
=` contentType' is form data . So data sent is converted to request parameters based on delimiters
也尝试data: JSON.stringify(dataModel)
,它应该工作