1. 程式人生 > >Ajax前後端傳值(以下內容有些說法可能不是很準確,但值能夠準確接收,僅作為筆記而已)

Ajax前後端傳值(以下內容有些說法可能不是很準確,但值能夠準確接收,僅作為筆記而已)

傳一個或多個值:

前端:`

/**
  
     * @type {{num: number}}
     */
        var object1 = {
            "num":1,
            “name”:“張”
        }

        $.ajax({
            type:"post",
            url:"/user/test",
            data:object1,
            sync:true,
            success:function(re){
                //用的JSONObject,傳過來的是物件,以{}來表示
                if(re!="{}") {
                    alert(re)
                }
            }
                })

後端接收

@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserServiceImpl usi;


    @RequestMapping("/test")
    //形參如果名字與前臺封裝的鍵對應,則不需要寫value值,否則必須寫value,即以下兩種方式都可獲取值
  /*  public  String  test(@RequestParam (value = "num")String num1,@RequestParam String(value = "name") name1){*/
    public  String  test(@RequestParam String num,@RequestParam String name){
        System.out.println(num);
        System.out.println(name);
        return "ok";
    }

傳陣列
前臺:

   var arr = new Array()
    arr.push(1)
    arr.push(2)
    arr.push(3)
        $.ajax({
            type:"post",
            url:"/user/test1",
            //封裝成json型別
            data:{"arr":arr},
            //這個必須為true,預設是false,會深度序列化,servlet解析不了
            traditional:true,
            sync:true,
            success:function(re){
                //用的JSONObject,傳過來的是物件,以{}來表示
                if(re!="{}") {
                    alert(re)
                }
            }
                })
})

後臺

//引數接收類似於傳單個值,只是接收型別變成了String[]
public  String  test1(@RequestParam(value = "arr") String []arr){
        List<Integer> list = new ArrayList<>();
        for(int i=0;i<arr.length;i++){
            list.add(Integer.valueOf(arr[i]));
        }
        for (Integer integer : list) {
            System.out.println(integer);
        }
        return "ok";
    }