想用springmvc来传递json数据然后返回,不知道为什么报错415,如下图:ajax代码:
user对象:
controller代码:
浏览器调试:
出错页面:请问究竟是什么问题导致的???网上说的办法好像都不行
1.已经添加jackson-mapper-asl-1.9.13.jar和jackson-core-asl-1.9.13.jar两个包
2.springmvc.xml中已经写了<mvc:annotation-driven></mvc:annotation-driven> 自动注册驱动

3.data使用data:JSON.stringify('{name:"xiaoming",age:18}'),  依然报同样的错,没有效果

解决方案 »

  1.   

     'contentType' : 'application/json',
     'data' : JSON.stringify(data),这样试试
      

  2.   

    你的data数据明显是个字符串啊你提交个字符串干嘛
      

  3.   


    我之前就去掉过 ‘ ’,传递{'name':'xiaoming','age':18}也没有作用
      

  4.   


    我之前就去掉过 ‘ ’,传递{'name':'xiaoming','age':18}也没有作用
    {'name':'xiaoming','age':18}
    这样写才是一个json数据,然后你再在ajax中加入一个属性dataType:json你试试
      

  5.   

    你传一个最简单,比如{'name':'xiaoming'},看看还报这个错误吗
      

  6.   

    原因:ajax提交的请求内容不匹配,检查 
    dataType : 'json',  
    contentType: "application/json",
    data:JSON.stringify(rows[0]),自己看看是不是没有指定DataType的类型
      

  7.   

    你没指定ajax返回类型,而controller返回的是一个json对象
    用这个:$.ajax({
                    url: "/",
                    type: 'post',
                    dataType: 'json',
                    contentType: 'application/json;charset=utf-8',
                    data: JSON.stringify({name: 'xiaoming', age: 12}),
                })
      

  8.   

    尝试着把返回的user先用JsonUtils之类的工具类显式转换为Json格式,返回类型JSON试试
      

  9.   


    报的错是传进来的参数和requestbody注解的参数不匹配,应该还没到返回json数据的那一步
      

  10.   

    你User实体里有三个属性,传递的参数又只有2个属性,这样肯定会报错啊
      

  11.   

    请问传递json是只添加这两个jar包吗?jackson-mapper-asl-1.9.13.jar和jackson-core-asl-1.9.13.jar两个包
      

  12.   

    把控制器中的@RequestBody User user  换成@ModelAttribute User user  前端ajax的参数 去掉外面的' '使用正确的json格式
      

  13.   

    缺jar
    我用的是jackson-all,
                    jackson-annotations,
                    jackson-databind,
                    jackson-coreps.all包含(mapper)
      

  14.   

    http://www.henryxi.com/ajax-post-json-xml-to-springmvc
      

  15.   

    同样问题.请问楼主解决了吗 '{"username":"name"}' 不会报错. 去掉最外面的双引号返回400
      

  16.   

    请debug一下,看是否进入这个方法,
    如果没有进入这个方法:
       1.是不是因为接收参数出问题了,这个时候,你就先将@ResponseBody User user改为String name。
          假如成功了,那么代表参数有问题,如果还没成功。
          用这个js试一下:$.post(url,{name:"123"},function(data){console.info("SUCCESS")})
      

  17.   

    加个json在后面
      

  18.   

    以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,用JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: "json",contentType:"application/json" 这样就可以将一个对象或者List传到Java端,而java的Controller中要使用@RequestBody即可绑定对象或者List.不信你试试!JavaScript 代码:
    <script type="text/javascript">  
        $(document).ready(function(){  
            var saveDataAry=[];  
            var data1={"userName":"test","address":"gz"};  
            var data2={"userName":"ququ","address":"gr"};  
            saveDataAry.push(data1);  
            saveDataAry.push(data2);         
            $.ajax({ 
                type:"POST", 
                url:"user/saveUser", 
                dataType:"json",      
                contentType:"application/json",               
                data:JSON.stringify(saveData), 
                success:function(data){ 
                                           
                } 
             }); 
        });  
    </script> Java代码
        @RequestMapping(value = "saveUser", method = {RequestMethod.POST }}) 
        @ResponseBody  
        public void saveUser(@RequestBody List<User> users) { 
             userService.batchSave(users); 
        } 
      

  19.   

    加上dataType和error:function再看有什么问题
      

  20.   

    JS请求加上:
    dataType:"json"Java类加上
    @RequestMapping(value = "/jsonTest",consumes = "application/json")
    重点在consumes = "application/json"
      

  21.   

    楼主问题解决了么,我最近看Spring MVC解析json数据这一块也遇到相同问题,在网上收有3中方法
    1:要在配置里面增加<mvc:annotation-driven />
    2:需要在ajax里面增加contentType:"application/json"
    3:需要添加jacksonJSON-all-1.9.8.jar包但是我这3中方法都试过了,任然包错415楼主解决了这个问题能分享下么,tks!
      

  22.   

    难道ajax请求对应后台部分不应该加@ResponesBody吗???
      

  23.   


    你这个是response   他那个是request 不一样的.
    返回 一个对象 的时候  需要 加上response body 
      

  24.   

    415是解析json的时候的错误,无法解析。
    1、试试让你的User类继承Serializable
    2、传过去的data不要外层的单引号 data:{ name:value1,age:value2 }
      

  25.   

    dataType : 'text',
    试试
      

  26.   

    415是json格式错误的吧。应该是datatype的问题
      

  27.   

    data : { name:value1,age:value2 }
    dataType : "json",
    在把contentType去掉,这个不用写,后台的代码不用更改。
      

  28.   

    我把外头的双引号都换成了单引号,key value用双引号,可以通过
        //请求是json,输出是json
        function requestJson(){
         alert("data");
         $.ajax({
         type:'post',
         url:'${pageContext.request.contextPath}/requestJson.do',
         contentType:'application/json;charset=UTF-8',
         data:'{"name":"iphone6","price":"5210"}',
         success:function(data){//返回json结果
         alert(data);
                    console.log(data.name);
                    console.log(data.price);
         }
         });