首先可以简单地理解一下ajax的步骤:
第一:可以把ajax看作是一次普通的请求,那么既然是一次请求,就需要说明,想哪里,以get还是post的方式请求(请求的的同时还可以携带参数),请求结束之后,还会有返回的数据。
那么ajax在这个逻辑上,就可以这么写:
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <script type="text/javascript" src="js/jquery-3.6.0.js"></script> <!--这里是导入jquery--> <script type="text/javascript"> $(function (){ $("#btn").click(function () { /*这里是说:在btn 这个按钮被点击的时候,做如下操作*/ $.ajax({ /*发起ajax请求 想着就是一次普通的请求*/ url:"doajax", /*既然是请求,向谁请求?这里对应后端的一个RequestMapping(“xxx”)里面的xxxx*/ type:"get", /*既然是请求,就有get和post请求方式,是哪一种需要在此说明,不写也可以,默认是get*/ data:{ s:"ni hao ajax " /*既然是请求,可以携带数据,格式是key1:value1,key2:value2,xxxxxx*/ }, dataType:"json", /*既然是请求,就有返回的数据,返回的数据是什么格式*/ success:function (studentList){ /*这里是显示数据的逻辑,用的是代码加数据拼接的形式*/ $("#studentTable").append( "<tr>\n" + "<td>name</td>\n" + "<td>age</td>\n" + "</tr> " ) for (var i in studentList) { $("#studentTable").append( "<tr><td>"+studentList[i].name+ "</td><td>"+studentList[i].age+"</td></tr>" ) } } }) }); }) </script> <body > <center> <input type="button" id="btn" value="按钮" > <table id="studentTable"> </table> </div> </center> </body> </html>
复制
后端的controller层也贴一下吧:
import org.example.pojo.Student; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.List; @Controller public class MyController { @RequestMapping("/doajax") @ResponseBody public List<Student> doAjax(String s ){ List<Student> studentList=new ArrayList<>(); studentList.add(new Student("zhangsan",20)); studentList.add(new Student("lisi",22)); System.out.println(s); /*这里我并没有对传过来的参数经行加工,只是简单的演示一下后端是可以收到请求时候携带的参数的,注意,参数名要一致*/ return studentList; } }
复制
效果如下:
点击之后: