Ajax向后台传json格式的数据出现415错误的原因分析及解决方法

时间:2016-11-13351举报小编:youjiejie

    Ajax向后台传json格式的数据出现415错误的原因分析及解决方法感兴趣的朋友一起看看吧

    问题描述:

      ajax往后台传json格式数据报415错误,如下图所示

    页面代码

    function saveUser(){
    var uuId = document.getElementById("uuid").value;
    var idCard = document.getElementById("idCard").value;
    alert(uuId+idCard);
    // var result = new Object();
    // result.uuId = uuId;
    // result.idCard = idCard;
    // var saveData = JSON.stringify(result);
    // alert(saveData);
    $.ajax({
    url : "xdds/saveUser.do?random=" + Math.random(),
    type : "post",
    data : {"uuid" : uuId,"idCard" : idCard},
    // data:saveData,
    dataType : 'json',
    // contentType : "application/json",
    success:function(data){
    }
    });
    }

    后台代码

    @RequestMapping(value = "/saveUser.do", method = { RequestMethod.POST })
    @ResponseBody
    public MapsaveUser (@RequestBody MapUser user){
    Mapmap = new HashMap();
    System.out.println(user.getUuid()+user.getIdCard());
    map.put("result", "fda");
    return map ;
    }

    错误分析:415 (不支持的媒体类型) 请求的格式不受请求页面的支持

    正确的json格式{key:value, key:value}key和value应该都带双引号。上面的前台代码data中的数据value不带双引号,所以导致报错(因为前面接触的项目这样写是没问题)

    所以初步分析可能应为框架的问题,有的框架可以将

    data : {"uuid" : uuId,"idCard" : idCard}这种封装成正确的json格式。

    具体原因还不知道,博主也是小白,等博主搞清楚会分享出来的

    解决办法:将前台注释的代码打开

    var saveData = JSON.stringify(result)

    这个函数可以转化成真确的json格式。

    以上所述是小编给大家介绍的Ajax向后台传json格式的数据出现415错误的原因分析及解决方法,希望对大家有所帮助。