和提交一般表单一样发送数据

浏览器端代码

$("#ajaxform").click(function () {                //在咱们像提交表单一样发送数据时,不必把JSON对象转换为JSON字符串                var requestBody = {                    "empId":999,                    "empName":"harry",                    "empSalary":128.56                };                $.ajax({                    "url":"ajax/send/form/data.action",    // 申请的指标地址                    "type":"post",                    // 申请形式                    "data":requestBody,                // 申请体数据                    "contentType":"application/x-www-form-urlencoded",    //默认值,能够省略该项                    "dataType":"json",            // 服务器端返回数据的解析形式                    "success":function(response) {            // 服务器解决申请胜利,执行这个函数,响应体从参数这里传入                        // response曾经解析为JSON对象,能够间接应用“.属性名”形式拜访具体属性                        var result = response.result;                        // 如果返回后果胜利,显示胜利(逻辑胜利)                        if("SUCCESS" == result) {                            alert("SUCCESS");                        }                        // 如果返回后果失败,显示音讯(逻辑失败)                        if("FAILED" == result) {                            var message = response.message;                            alert(message);                        }                    },                    "error":function(response){            // 解决申请失败,例如:404、500、400等等                        alert(response);                    }                });            }); 

应用开发者工具查看申请体

controller代码

 @ResponseBody    @RequestMapping("/ajax/send/form/data")    public ResultEntity<String> receiveFormData(Employee employee) {        System.out.println(employee);        return ResultEntity.successWithoutData();    }

整个申请体是一个JSON数据

浏览器端代码

$("#ajaxjson").click(function(){               // Ajax申请的申请体如果是JSON格局,那么须要先将数据封装为JSON对象               var jsonObj = [                   {                       "empId":666,                       "empName":"jerry",                       "empSalary":123.321                   },                   {                       "empId":555,                       "empName":"bob",                       "empSalary":456.654                   },                   {                       "empId":444,                       "empName":"kate",                       "empSalary":666.666                   }               ];               // 将JSON对象转换为JSON字符串               var requestBody = JSON.stringify(jsonObj);               // 发送Ajax申请               $.ajax({                   "url":"ajax/send/json/data.action",    // 申请的指标地址                   "type":"post",                    // 申请形式                   "data":requestBody,                // 申请体数据                   "contentType":"application/json;charset=UTF-8",    //非默认值,不能省略                   "dataType":"json",                // 服务器端返回数据的解析形式                   "success":function(response) {            // 服务器解决申请胜利,执行这个函数,响应体从参数这里传入                       // response曾经解析为JSON对象,能够间接应用“.属性名”形式拜访具体属性                       var result = response.result;                       // 如果返回后果胜利,显示胜利(逻辑胜利)                       if("SUCCESS" == result) {                           alert("SUCCESS");                       }                       // 如果返回后果失败,显示音讯(逻辑失败)                       if("FAILED" == result) {                           var message = response.message;                           alert(message);                       }                   },                   "error":function(response){            // 解决申请失败,例如:404、500、400等等                       alert(response);                   }               });           });

应用开发者工具查看申请体

Controller代码

@ResponseBody   @RequestMapping("/ajax/send/json/data")   public ResultEntity<String> receiveJsonData(@RequestBody List<Employee> empList) {       for (Employee employee : empList) {           System.out.println(employee);       }       return ResultEntity.successWithoutData();   }

小结

应用JSON格局作为申请体去传送数据,非常适合发送结构复杂的大对象数据。JSON格局和Java类型间接对应,不须要额定封装专门接管申请参数的实体类。

应用时须要留神的点:

  • JSON对象须要应用JSON.stringify()转换为JSON字符串
  • contentType要设置成application/json;charset=UTF-8
  • Controller办法接管应用Java类型形参前须要应用@RequestBody注解