AJAX异步校验

Posted 爱舔奶盖的小野狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AJAX异步校验相关的知识,希望对你有一定的参考价值。

JQeury实现方式
  1. $.ajax()
    * 语法:$.ajax({键值对});
      //使用$.ajax()发送异步请求
      $.ajax({
      url:"ajaxServlet1111" , // 请求路径
      type:"POST" , //请求方式
      //data: "username=jack&age=23",//请求参数
      data:{"username":"jack","age":23},  //j建议这种
      success:function (data) {
      alert(JSON.stringify( data ));

      },//响应成功后的回调函数
      error:function () {
      alert("出错啦...")
      },//表示如果请求响应出现错误,会执行的回调函数
      dataType:"text"//设置接受到的响应数据的格式
      });
  2. $.get():发送get请求
    * 语法:$.get(url, [data], [callback], [type])
    * 参数:
      * url:请求路径
      * data:请求参数
      * callback:回调函数
      * type:响应结果的类型

  3. $.post():发送post请求
    * 语法:$.post(url, [data], [callback], [type])
    * 参数:
      * url:请求路径
      * data:请求参数
      * callback:回调函数
      * type:响应结果的类型

jsp;

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册页面</title>
    <script src="js/jquery-3.3.1.min.js"></script>
    <script>

        //在页面加载完成后
        $(function () {
            //给username绑定blur事件
            $("#username").blur(function () {
                //获取username文本输入框的值
                var username = $(this).val();
                //发送ajax请求
                //期望服务器响应回的数据格式:{"userExsit":true,"msg":"此用户名太受欢迎,请更换一个"}
                //                         {"userExsit":false,"msg":"用户名可用"}
                $.post("findUserServlet",{username:username},function (data) {
                    //判断userExsit键的值是否是true

                    alert(JSON.stringify( data ));

                    var span = $("#s_username");
                    if(data.userExsit){
                        //用户名存在
                        span.css("color","red");
                        span.html("asd");
                    }else{
                        //用户名不存在
                        span.css("color","green");
                        span.html(data.msg);
                    }
                },"json");

            });
        });
    </script>
</head>
<body>
    <form>
        <input type="text" id="username" name="username" placeholder="请输入用户名">
        <span id="s_username"></span>
        <br>
        <input type="password" name="password" placeholder="请输入密码"><br>
        <input type="submit" value="注册"><br>
    </form>
</body>
</html>

servlet;

@WebServlet("/findUserServlet")
public class FindUserServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        //1.获取用户名
        String username = request.getParameter("username");

        System.out.println(username);

        response.setContentType("application/json;charset=utf-8");
        HashMap<String, Object> map = new HashMap<>();
        //调用service层判断用户名是否存在
        if ("tom".equals(username)){
            //存在
            map.put("userExist",true);
            map.put("msg","名字已存在");
        }else{
            //不存在
            map.put("userExist",false);
            map.put("msg","用户名可以用");
        }
        //将map转换成json,并且传递给客户端
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(map));
        mapper.writeValue(response.getWriter(),map);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

 

以上是关于AJAX异步校验的主要内容,如果未能解决你的问题,请参考以下文章

AJAX异步校验

电力项目使用ajax引擎进行异步校验

利用ajax异步校验验证码(转)

问答项目---登陆账号密码登陆做AJAX异步校验

struts2中的Ajax异步校验

用户名异步校验