Ajax传递不同类型的参数

2019-10-20  本文已影响0人  HeloWxl

1、目录结构:

1.1 前端页面

前端页面.png

1.2 HTML代码

注意:需要引入layui噢

<style>
    button{
        margin-top: 50px;
        margin-left: 20px;
    }
</style>

<body>

<div style="margin: 0px 400px;text-align: center">
    <h1>Ajax 传递数值 实践</h1>
    <div>
        <button type="button" class="layui-btn layui-btn-primary" id="params">传递简单的参数</button>
        <button type="button" class="layui-btn" id="object">传递对象</button>
        <button type="button" class="layui-btn layui-btn-normal" id="list">传递集合</button>
        <button type="button" class="layui-btn layui-btn-warm" id="arrays">传递数组</button>
    </div>
</div>

</body>

2、传递一个普通的参数

2.1前端js

$("#params").click(function() {
  $.ajax({
    url: ctx + '/ajax/params',
    dataType: 'json',
    data: {userName: 'wangxianlin'},
    type: 'get',
    success: function(data) {
      console.log("控制台输出:" + data.userName)
      alert("传递基本参数:" + data.userName)
    }, error: function(e) {
      alert("服务器内部错误")
    }
  })
})

2.2 后端接口

/**
 * 传递一个普通参数
 * @param userName
 * @return
 */
@GetMapping("/params")
@ResponseBody
public Map<String,Object> params(@RequestParam("userName") String userName){
  Map<String,Object> map = new HashMap<>();
  map.put("userName",userName);
  return map;
}

2.3 测试结果

传递普通参数测试结果!.png

3、传递一个对象

3.1 前端js

// 对象的传递
$("#object").click(function() {
  var user = {
    userName : "wangxianlin",
    passWord : "123456"
  }
  $.ajax({
    url: ctx + '/ajax/object',
    dataType: 'json',
    data: JSON.stringify(user),
    type: 'post',
    contentType: 'application/json; charset=utf-8',
    success: function(data) {
      alert("传递对象参数:" + data.userName+"--"+data.passWord)
      console.log("控制台输出:" + data.userName+"--"+data.passWord)
    }, error: function(e) {
      alert("服务器内部错误")
    }
  })
})

3.2 后端接口

/**
 * 传递一个对象
 * @param user
 * @return
 */
@PostMapping("/object")
@ResponseBody
public User object(@RequestBody User user){
  return user;
}

3.3 测试结果

传递对象参数测试结果.png

4、传递一个集合list

4.1 前端js

// 集合传递
$("#list").click(function() {
  var list = [];
  for(var i=0; i<10; i++) {
    list[i] = i;
  }

$.ajax({
    url: ctx + '/ajax/list',
    dataType: 'json',
    data: JSON.stringify(list),
    type: 'post',
  contentType: 'application/json; charset=utf-8',
    success: function(data) {
      alert("传递集合参数:" + data.list)
      console.log("控制台输出:" + data.list)
    }, error: function(e) {
      alert("服务器内部错误")
    }
  })
})

4.2 后端接口

/**
 * 传递一个列表
 * @param list
 * @return
 */
@PostMapping("/list")
@ResponseBody
public Map<String,Object> list(@RequestBody List<Integer> list){
  Map<String,Object> map = new HashMap<>();
  map.put("list",list);
  return map;
}

4.3 测试结果

传递List参数测试结果.png

5、传递一个数组array

第一种方式

5.1 前端js

// 数组传递
$("#arrays").click(function() {
  var array = []
  for (var i = 10; i > 0; i--) {
    array.push(i);
  }
  $.ajax({
    type: 'post',
    dataType: 'json',
    url: ctx + '/ajax/array',
    data: JSON.stringify(array),
    contentType: 'application/json; charset=utf-8',
    success: function(data) {
      alert("传递数组参数:" + data.array)
      console.log("控制台输出:" + data.array)
    }, error: function(e) {
      alert("服务器内部错误")
    }
  })
})

5.2 后端接口

@PostMapping("/array")
@ResponseBody
public Map<String,Object> array(@RequestBody Integer[] array){
  Map<String,Object> map = new HashMap<>();
  map.put("array",array);
  return map;
}

第二种方式

// 数组传递
$("#arrays").click(function() {
  var array = []
  for (var i = 10; i > 0; i--) {
    array.push(i);
  }
  $.ajax({
    type: 'post',
    dataType: 'json',
    url: ctx + '/ajax/array2',
    data: {array:array},
    success: function(data) {
      alert("传递数组参数:" + data.array)
      console.log("控制台输出:" + data.array)
    }, error: function(e) {
      alert("服务器内部错误")
    }
  })
})
@ RequestMapping("/array2")
@ResponseBody
public Map<String,Object> array2(@RequestParam(value="array[]") Integer[] array){
  Map<String,Object> map = new HashMap<>();
  map.put("array",array);
  return map;
}

5.3 测试结果

传递数据参数测试结果.png

6、补充

6.1 Ajax参数介绍

上一篇 下一篇

猜你喜欢

热点阅读