后台使用@RequestBody接收,anglarJs向后台传递Json数据,报415或400错误
2017-12-09 20:01
881 查看
今天想到以前碰到的一个问题,在使用angularJs+ssm写东西时碰到的一个使用$http.post()传递Json时报错 415 (Unsupported Media Type) 和400 (Bad Request) 错误。当时是这么写的:
后台是使用的SpringMVC的@RequestBody注解:
前台angularJs的是如此:
然而在提交数据的时候报错 415 (Unsupported Media Type)
当发生 415 错误时首先确认项目中是否导入了Jackson的一系列jar包(本文已经导入,就不在讨论)。
仔细一查,发现是请求文本类型
Content-Type:
application/x-www-form-urlencoded
的问题,不是我们需要的 application/json 如下:
所以换了另一种提交方式 :
看着也没啥不对的啊,为啥就是报错了呢。
后来明白了,原来angularJs的transformRequest会帮你把数据进行处理,所以重新设置一下就可以成功提交了:
到这里就完全可以解决400和415的错误了。
如果到这里还是出现 415 错误时就要考虑是不是没有导入@RequestBody和@ResponseBody所依赖的JacksonJar包了
核心包分别是:
jackson-annotations.jar,jackson-core.jar,jackson-databind.jar, jackson-mapper-asl.jar
导入项目就可以了
希望文章可以帮助到其他博友。
后台是使用的SpringMVC的@RequestBody注解:
public @ResponseBody Map<String,Object> test(@RequestBody Map<String, Object> map){ ... }
前台angularJs的是如此:
var data=['abc',123']; $http.post(url,data).success( function(data) {..}
然而在提交数据的时候报错 415 (Unsupported Media Type)
当发生 415 错误时首先确认项目中是否导入了Jackson的一系列jar包(本文已经导入,就不在讨论)。
仔细一查,发现是请求文本类型
Content-Type:
application/x-www-form-urlencoded
的问题,不是我们需要的 application/json 如下:
所以换了另一种提交方式 :
var data=['abc',123']; $http({ method : 'POST', url : url, data : data, headers : { 'Content-type' : 'application/json;charset=UTF-8' } }).success( function(data) {...}然而这样的确不报 415 错误了,可是却报了400 (Bad Request) 错误。这就懵逼了,这时又检查了请求的信息:
看着也没啥不对的啊,为啥就是报错了呢。
后来明白了,原来angularJs的transformRequest会帮你把数据进行处理,所以重新设置一下就可以成功提交了:
$http({ method : 'POST', url : url, data : data, headers : { 'Content-type' : 'application/json;charset=UTF-8' }, transformRequest : function(obj) { return angular.toJson(obj); } }).success( function(data) {...}
到这里就完全可以解决400和415的错误了。
如果到这里还是出现 415 错误时就要考虑是不是没有导入@RequestBody和@ResponseBody所依赖的JacksonJar包了
核心包分别是:
jackson-annotations.jar,jackson-core.jar,jackson-databind.jar, jackson-mapper-asl.jar
导入项目就可以了
希望文章可以帮助到其他博友。
相关文章推荐
- Springmvc前台通过ajax传值到后台用@RequestBody接收,报415/400错误
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC绑定ajax传递json数据到pojo对象错误(400 Bad Request)
- springMVC中使用注解@ResponseBody,@RequestBody传递json数据
- springMVC中使用注解@ResponseBody,@RequestBody传递json数据
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- 通过ajax,向后台传对象时,@RequestBody 接收对象,一直报415的错误
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- HTTP Status 415 Unsupported Media Type [Spring MVC @RequestBody传递Json数据 ]
- 关于SpringMVC使用@RequestBody注解接受json格式数据报415错误
- springMVC使用@RequestBody接收Json的过程,解决415的问题ss
- Maven项目:Spring MVC + Ajax + Json + RequestBody:POST后台服务器接收前端JSON数据并注解到POJO内
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- Spring MVC @RequestBody接收JSON报HTTP 415/400问题的解决
- 使用@requestbody接收JSON数据
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法