我将json对象从ajax调用发送到spring mvc控制器。
这是我发送给控制器的json对象。
[{"id":"7","priority":"8","startTime":"2015-09-23 01:01:00.0"}]
我的ajax电话
$.ajax({
url : 'save.web',
datatype:'json',
type: "post",
data: "data="+JSON.stringify(jsonArray),
success:function(data){
}
我的控制器
RequestMapping(value = "save.web", method = RequestMethod.POST)
public String save( HttpServletRequest request, HttpServletResponse
response,@RequestBody Map<String, Object> inputParameter,
@RequestParam("data") String ja) {
System.out.println("--------------Entered Save-----------");
return "menu"
}
我尝试使用@requestBody注释而不是@requestParam。我尝试设置标题并在RequestMapping中使用了Consumes我仍然获得POST http://localhost:8089/campaignManager/save.web 415(不支持的媒体类型) 错误。
请让我知道解决方案。我试了很多次
答案 0 :(得分:3)
服务器正在发送415,因为请求中的内容媒体类型不是服务器所期望的。
将contentType添加到请求标题中,例如:contentType: "application/json"
$.ajax({
url : 'save.web',
datatype:'json',
type: "post",
contentType: "application/json",
data: "data="+JSON.stringify(jsonArray),
success:function(data){
}
答案 1 :(得分:3)
我解决了我的错误。(415错误)
我从控制器中删除@RequestBody ..
答案 2 :(得分:0)
Include jackson-binding.jar in your classpath.
<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.11</version>
</dependency>
Also set content-type="application-json" in request-header
答案 3 :(得分:0)
您收到415错误是因为返回类型而不是请求类型。 ajax不支持分块数据,这可能是您从服务中获得的默认响应之一。这是您从新版本web-api获得的默认响应之一。唯一的解决方案是使用XmlHttpRequest。