ajax请求头添加contentType:“application/json“的作用

请求例子:

$.ajax({
        dataType:'json',
        url:"../rest/test",
        dataType:"JSON",
        async:false,
        type:"POST",
        contentType:"application/json",   //
        data:JSON.stringify({"id":"1"}),  //如果不添加  contentType:"application/json" 则data必须是json对象,应该是{"id":"1"}
        success : function(result){
            console.log(result);
            if(result.successful){
                alert("删除成功!");
                getTableData();
            }else{
                alert("删除失败!");
            }
            
        },
        error:function(){
            alert("删除失败!");
        }

请求端:如果添加contentType:"application/json" ,则请求参数是json格式的字符串。如果不添加,入参是json对象。

接收端:

   不添加添加contentType:"application/json":

       方法一:

        @RequestMapping(value = "/test", method = RequestMethod.POST)
        public @ItemResponseBody Object removeProject(HttpServletRequest request) {
               BufferedReader reader = null;
                String line = "";
                String xmlString = null;
                try {
                    reader = request.getReader();
                    StringBuffer inputString = new StringBuffer();
                    while ((line = reader.readLine()) != null) {
                        inputString.append(line);
                    }
                    xmlString = inputString.toString();
                } catch (Exception e) {
//                    throw new YppException(PayException.xmlParseError);
                }

            Map result = new HashMap();
            result.put("result","succes");
            return result;
        }
       方法二:

          @RequestMapping(value = "/test", method = RequestMethod.POST)
        public @ItemResponseBody Object editProject(@RequestBody Map map) {
            String id=map.get("id").toString();
            Map result = new HashMap();
            result.put("result","succes");
            return result;
        }

  添加添加contentType:"application/json":

    

@RequestMapping(value = "/test", method = RequestMethod.POST)
        public @ItemResponseBody Object getCommonValue(HttpServletRequest request) {
            String sspm = request.getParameter("id")==null?"":request.getParameter("id");
            Map result = new HashMap();
            result.put("result","success");
            return result;
        }

你可能感兴趣的:(java)