Jquery 415在ajax调用Spring mvc中发送json对象不支持的媒体类型
我正在从ajax调用向SpringMVC控制器发送json对象 这是我发送给控制器的json对象Jquery 415在ajax调用Spring mvc中发送json对象不支持的媒体类型,jquery,json,ajax,spring-mvc,Jquery,Json,Ajax,Spring Mvc,我正在从ajax调用向SpringMVC控制器发送json对象 这是我发送给控制器的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
[{"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"
}
RequestMapping(value=“save.web”,method=RequestMethod.POST)
公共字符串保存(HttpServletRequest请求,HttpServletResponse
响应,@RequestBody映射inputParameter,
@RequestParam(“数据”)字符串(ja){
System.out.println(“--------------输入保存-----------------”;
返回“菜单”
}
我尝试使用@requestBody注释而不是@requestParam。我尝试在RequestMapping中设置标题并使用了Consumes,但仍然收到了POST 415(不支持的媒体类型)
错误
请告诉我解决办法。由于请求中的内容媒体类型不是服务器期望的类型,我尝试了很多服务器正在发送415 将contentType添加到请求头中,如:
contentType:“application/json”
由于请求中的内容媒体类型不是服务器期望的类型,服务器正在发送415 将contentType添加到请求头中,如:
contentType:“application/json”
我解决了我的错误
我将@RequestBody从我的控制器中删除。我解决了我的错误。(415错误)
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
我将从我的控制器中删除@RequestBody..在类路径中包含jackson-binding.jar。
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
org.codehaus.jackson
杰克逊地图绘制者
1.9.11
还可以在请求头中设置content type=“application json”
在类路径中包含jackson-binding.jar。
org.codehaus.jackson
杰克逊地图绘制者
1.9.11
还可以在请求头中设置content type=“application json”
您得到的415错误是因为返回类型而不是请求类型。ajax不支持分块数据,这可能是您从服务获得的默认响应之一。这是从新版本web api获得的默认响应之一。唯一的解决方案是使用XmlHttpRequest。您得到的错误是由于返回类型而不是请求类型。ajax不支持分块数据,这可能是您从服务获得的默认响应之一。这是从新版本web api获得的默认响应之一。唯一的解决方案是使用XmlHttpRequest。我在ajax调用中添加了contentType:“application/json”,但仍然存在相同的错误。将数据:“data=“+json.stringify(jsonArray)更改为data:json.stringify(jsonArray)。输出应该类似于$.ajax({url:'save.web',数据类型:'json',类型:'post',内容类型:'application/json',数据:json.stringify(jsonArray),成功:函数(数据){}我试图更改daa:json.stringify(jsonArray)…错误仍然存在您是否遇到了相同的错误415或其他错误one@DhaneeshNair添加了contentType:“application/json”
对我来说很有效。我之前得到了415
,之后得到了预期的数据。我在ajax调用中添加了contentType:“application/json”,但仍然存在相同的错误。更改数据:“data=”+将JSON.stringify(jsonArray)转换为data:JSON.stringify(jsonArray)。输出应如下$.ajax({url:'save.web',数据类型:'JSON',类型:'post',内容类型:'application/JSON',数据:JSON.stringify(jsonArray),成功:函数(数据){}我试图更改daa:JSON.stringify(jsonArray)…错误仍然存在您是否遇到了相同的错误415或其他错误one@DhaneeshNair添加了contentType:“application/json”
对我来说很有效。我之前得到了415
,之后得到了预期的数据。那么您如何将表单数据映射到后端?如果使用Rest API,如.NET Core,则删除[FromBody]控制器方法参数中的属性对我有效。例如创建([FromBody]Foo-Foo)到创建(Foo-Foo),那么如何将表单数据映射到后端?如果使用Rest API,如.NET Core,则删除控制器方法参数中的[FromBody]属性对我有效。例如创建([FromBody]Foo-Foo)到创建(Foo-Foo)