AJAX异步请求数据

ゞ 浴缸里的玫瑰 2024-04-07 13:08 167阅读 0赞

文章目录

  • 前言
  • 一、AJAX是什么?
  • 二、使用步骤
    • 1.语法格式
    • 2.示例
    • 2.注意事项
  • 总结

前言

本篇主要介绍怎么使用AJAX向服务器请求数据。


一、AJAX是什么?

异步请求技术,可以实现页面局部刷新,在不刷新页面的情况下发送请求到后台加载数据,并且展现在前端


二、使用步骤

1.语法格式

代码如下:

  1. $.get(url,data,function(data){
  2. })
  3. 发送get请求
  4. 参数1: url 是后台服务器地址
  5. 参数2: data 是发送到后台服务器的数据,是map格式,
  6. 形如 {
  7. name: "John", time: "2pm" }
  8. 参数3: function 函数,是回调函数,是请求完成后执行的函数,参数data就是后台返回的数据
  9. --------------------------------------------------------------------
  10. $.post(url,data,function(data){
  11. })
  12. 发送post请求
  13. 参数1: url 是后台服务器地址
  14. 参数2: data 是发送到后台服务器的数据,是map格式,
  15. 形如 {
  16. name: "John", time: "2pm" }
  17. 参数3: function 函数,是回调函数,是请求完成后执行的函数,参数data就是后台返回的数据
  18. --------------------------------------------------------------------
  19. $.ajax()是综合应用,
  20. 1) 可以随意指定请求方式
  21. 2) 可以指定发送到后台的数据类型
  22. 一般表单发送的数据,称作表单数据,形如name=admin&pwd=123456
  23. servlet后台使用req.getParameter()接收
  24. 可以指定为json数据,形如{
  25. "name":"admin","pwd":"123456"}
  26. servlet后台使用字符流读取数据,拼接成json
  27. 3) 可以指定接收数据的格式
  28. --------------------------------------------------------------------
  29. $.ajax({
  30. url:"", // 请求路径
  31. type:"get|post", // 指定请求方式,不写默认是get
  32. contenType:"application/x-www-form-urlencoded", // 默认的,发送表单数据
  33. // "application/json" , 按json格式发送
  34. data:"name=admin&pwd=123456", // 发送到后台的数据
  35. // 如果是指定是json格式,此处应该{"name":"admin","pwd":"123456"}
  36. success:function(data){
  37. // 请求成功的回调,data就是后台返回的数据
  38. },
  39. error:function(){
  40. // 请求异常的回调函数
  41. alter("服务器正忙,稍后再试");
  42. }
  43. })

2.示例

需求: 注册时,写完用户名,提示该用户名是否存在可否注册

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>注册</title>
  6. </head>
  7. <body>
  8. 用户名<input id="input-1" type="text" name="username"> <span id="span-1"></span>
  9. <script src="/day42/js/jquery-3.6.0.js" type="text/javascript"></script>
  10. <script type="text/javascript">
  11. $("#input-1").blur(function (){
  12. var name = $("#input-1").val();
  13. // $.get 发送到后台的数据,其实表单数据
  14. $.get("/day42/check/user",{
  15. username:name},function (data){
  16. // console.log(data);
  17. // 后台返回的是json数据
  18. if (data.code == 200) {
  19. $("#span-1").text(data.msg)
  20. $("#span-1").css("color","green")
  21. } else {
  22. $("#span-1").text(data.msg)
  23. $("#span-1").css("color","red")
  24. }
  25. })
  26. })
  27. </script>
  28. </body>
  29. </html>
  30. package com.qf.servlet;
  31. import com.qf.model.User;
  32. import com.qf.service.impl.UserServiceImpl;
  33. import javax.servlet.ServletException;
  34. import javax.servlet.annotation.WebServlet;
  35. import javax.servlet.http.HttpServlet;
  36. import javax.servlet.http.HttpServletRequest;
  37. import javax.servlet.http.HttpServletResponse;
  38. import java.io.IOException;
  39. import java.io.PrintWriter;
  40. /**
  41. * --- 天道酬勤 ---
  42. *
  43. * @author QiuShiju
  44. * @desc
  45. */
  46. @WebServlet("/check/user")
  47. public class CheckUserServlet extends HttpServlet {
  48. @Override
  49. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  50. // 接收数据
  51. String username = req.getParameter("username");
  52. System.out.println("CheckUserServlet.doGet() username = " + username );
  53. // 传递数据给service
  54. UserServiceImpl userService = new UserServiceImpl( );
  55. User user = userService.findUserByUsename(username);
  56. System.out.println("CheckUserServlet.doGet() user = " + user );
  57. // 设置响应的内容类型为json格式
  58. resp.setContentType("application/json;charset=utf-8");
  59. // 响应json数据,拼接json
  60. PrintWriter out = resp.getWriter( );
  61. // 判断
  62. if (user != null) {
  63. // 已存在,不能再注册
  64. // 响应json数据
  65. out.write("{\"code\":500,\"msg\":\"已经存在,不能注册\"}");
  66. } else {
  67. // 不存在,可以注册
  68. out.write("{\"code\":200,\"msg\":\"可以注册\"}");
  69. }
  70. }
  71. @Override
  72. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  73. doGet(req,resp);
  74. }
  75. }

2.注意事项

使用 $.ajax, 以get请求发送json数据,后台servlet可以使用req.getParameter(“”)来接收数据
使用 $.ajax,以post请求发送json数据,后台servlet不可以使用req.getParameter(“”)来接收数据,应该使用输入流来读取json字符串

总结

AJAX是一种异步请求技术,能控制页面的局部刷新,应用范围十分广泛。它有三种格式,$.get()
$.post(),和 $.AJAX()。在使用时要注意传值和回调函数可能会出现的问题。

发表评论

表情:
评论列表 (有 0 条评论,167人围观)

还没有评论,来说两句吧...

相关阅读

    相关 异步请求-AJAX

    什么是同步交互 > 首先用户向HTTP服务器提交一个处理请求。接着服务器端接收到请求后,按照预先编写好的程序中的业务逻辑进行处理,比如和数据库服务器进行数据信息交换。最后,服

    相关 ajax--异步请求

    何为异步请求? 当浏览器向服务器发送同步请求时,服务处理同步请求的过程中,浏览器会处于等待的状态,服务器处理完请求把数据响应给浏览器并覆盖浏览器内存中原有的数据,浏览器重