记录POST传JSON时一个错误

提交方法

  function doSave(){
     
         var type= $("#type").val();
         var qrcode= $("#qrcode").val();
         var code= $("#code").val();
         if(type==null||type===''){
     
             alert("型号不能为空");
             return ;
         }
         if(qrcode==null||qrcode===''){
     
             alert("二维码不能为空");
             return ;
         }
         if(code==null||code===''){
     
             alert("明码不能为空");
             return ;
         }
         var data={
     'type':type,'qrcode':qrcode,'code':code};
 /*       var data=JSON.stringify({
             '型号': type, '二维码': qrcode, '明码': code
         });*/
         alert(data);
         //ajax保存
         $.ajax({
     
             url:"http://127.0.0.1:8080/Hanslaser/Service2",
            // contentType: "text/plain;charset=utf-8",
             contentType: "application/json;charset=utf-8",
             type: 'post',
             data: data,
             cache:false,
             dataType:'text',
             async : false, //默认为true 异步
             error:function(){
     
                 alert('系统错误');
             },
             success:function(data){
     
                 alert(data);
 /*                if(data==="success"){
                     alert("保存成功");
                 }else{
                     alert("保存失败");
                 }*/
             }
         });
         return false;
     }

java 后台代码

@PostMapping(value = "Service2")
    @ResponseBody
    public String Service2(HttpServletRequest request, @RequestBody Map<String,String> map){
     
            StringBuilder result = new StringBuilder();
            for (Map.Entry<String, String> entry : map.entrySet()) {
     
                System.out.println("entry.getKey() = " + entry.getKey()+",entry.getValue()= " + entry.getValue());
                result.append(entry.getValue());
            }
            return result.toString();
    }

然后一直报错 提示json解析错误:

控制台- 2021-01-05 17:00:06 [http-nio-8080-exec-2] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: error parse true; nested exception is com.alibaba.fastjson.JSONException: error parse true]

先前一直以为是fastjosn的问题,后面才发现后面才发现是没有把js值转成json字符串 导致是表单的提交方式,中文还进行了urlencode

记录POST传JSON时一个错误_第1张图片

JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。

你可能感兴趣的:(JAVA,JS,java,js,HTTP)