当前位置:Gxlcms > AJAX > Ajax向后台传json格式的数据出现415错误的原因分析及解决方法

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

时间:2021-07-01 10:21:17 帮助过:16人阅读

问题描述:

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

页面代码

  1. function saveUser(){
  2. var uuId = document.getElementById("uuid").value;
  3. var idCard = document.getElementById("idCard").value;
  4. alert(uuId+idCard);
  5. // var result = new Object();
  6. // result.uuId = uuId;
  7. // result.idCard = idCard;
  8. // var saveData = JSON.stringify(result);
  9. // alert(saveData);
  10. $.ajax({
  11. url : "xdds/saveUser.do?random=" + Math.random(),
  12. type : "post",
  13. data : {"uuid" : uuId,"idCard" : idCard},
  14. // data:saveData,
  15. dataType : 'json',
  16. // contentType : "application/json",
  17. success:function(data){
  18. }
  19. });
  20. }

  后台代码

  1. @RequestMapping(value = "/saveUser.do", method = { RequestMethod.POST })
  2. @ResponseBody
  3. public Map<String, Object> saveUser (@RequestBody MapUser user){
  4. Map<String, Object> map = new HashMap<String, Object>();
  5. System.out.println(user.getUuid()+user.getIdCard());
  6. map.put("result", "fda");
  7. return map ;
  8. }

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

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

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

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

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

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

  1. var saveData = JSON.stringify(result)<br>这个函数可以转化成真确的json格式。<br><br>ps:小白一个,有不对的地方请大神指正;有大神知道具

以上所述是小编给大家介绍的Ajax向后台传json格式的数据出现415错误的原因分析及解决方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

人气教程排行