• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    用AJAX实现页面登陆以及注册用户名验证的简单实例

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

    AJAX 是一种用于创建快速动态网页的技术。其核心是 JavaScript 对象 XMLHttpRequest。该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术。简而言之,XMLHttpRequest使您可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户。

    通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

    传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

    试想如果在注册时,提交了注册信息,等了几秒后页面重载了,结果弹出一个提示框告诉你“用户名已被使用”,那将是很令人恼火的一件事。所以在这里,使用AJAX实现异步请求,即可在不重载页面的情况下实现与数据库的通讯。

    创建XMLHTTPRequest对象

    使用javascript在html页面中创建XMLHTTPRequest对象,实现AJAX异步请求:

    span style="font-size:14px;">    var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
          xmlhttp.open("POST", "AJAXTest.ashx?" + "i=5j=10", true);
          xmlhttp.onreadystatechange = function ()
          {
            if (xmlhttp.readyState == 4)
            {
              if (xmlhttp.status == 200)
              {
                alert(xmlhttp.responseText);
              }
              else
              {
                alert("AJAX服务器返回错误!");
              }
            }
          }
          xmlhttp.send(); 
    
    
    /span>

    var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); //创建XMLHTTP对象,考虑兼容性

    xmlhttp.open("POST", "AJAXTest.ashx?" + "i=5j=10", true); //“准备”向服务器的GetDate1.ashx发出Post请求(GET可能会有缓存问题)。这里还没有发出请求。

    readyState == 4 表示服务器返回完成数据了。之前可能会经历2(请求已发送,正在处理中)、3(响应中已有部分数据可用了,但是服务器还没有完成响应的生成)

    注意:   

    不要以为if (xmlhttp.readyState == 4) 在send之前执行就觉得不对, xmlhttp.send(); 这时才开始发送请求。这时才开始发送请求后不等服务器返回数据,就继续向下执行,所以不会阻塞,界面就不卡了,这就是AJAX中“A”的含义“异步”。

    AJAX的封装

    在实际项目开发中,会有多处用到AJAX异步请求,可是创建对象代码这么长,复制粘贴都嫌麻烦,而且还会影响代码的观赏性,所以需要将AJAX进行封装。将其封装成js功能文件,并在网页中导入即可进行引用。

    简单AJAX封装后代码:

    span style="font-family:Times New Roman;font-size:14px;">     function ajax(url,onsuccess,onfail)
        {
          var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
          xmlhttp.open("POST", url, true);
          xmlhttp.onreadystatechange = function ()
          {
            if (xmlhttp.readyState == 4)
            {
              if (xmlhttp.status == 200)
              {
                onsuccess(xmlhttp.responseText);//成功时逻辑操作
              }
              else
              {
                onfail(xmlhttp.status);//失败是逻辑操作
              }
            }
          }
          xmlhttp.send(); //这时才开始发送请求
        }/span>

    封装完成后,我们可以开始写登陆判断代码(我是用的是.net):

    首先,创建一个html页login.htm以及ashx一般处理程序userhandle.ashx,请求的url中带上一个action参数,在一般处理程序中对请求进行处理。

    function Submit1_onclick() {
          var name = document.getElementById("name").value;
          var psw = document.getElementById("psw").value;
          if (psw != ""  name != "") { 
           //调用AJAX
           ajax("../userhandle.ashx?operate=loginuserName=" + name + "psw=" + psw, function (resText) {
              if (resText == "fail") {
                alert("用户名或密码错误!");
                return false;
              }
              else {
                document.write(resText);
              }
            })
          }
          else {
            alert("请输入完整登陆信息!");
            return false;
          }
        }
    
    

    在一般处理程序中接到请求动作,判断并执行相关查询,返回一个字符串,前台页面接到后,判断并执行相应功能。

     public void login(HttpContext context)
        {
          userBLL ub = new userBLL();
          string userName = context.Request["userName"];
          string userPsw = context.Request["psw"];   
          bool b = ub.Login(userName, userPsw);//封装好的bll层方法,判断用户名密码是否正确
          if (b == true)
          {
            context.Session["Name"] = userName;
            context.Session["role"] = "user";
            context.Response.Write("success");
           }
          else
          {
            context.Response.Write("fail");
          }
        }

    服务器判断完后,将success或者fail发送到客户端。这样一个使用AJAX异步请求实现登陆就完成了。

    至于注册是判断用户名,我就只粘贴上来:

    function check() {
          var userName = document.getElementById("Text1").value;
          if (userName == "" || userName == null) {
            document.getElementById("nameMeg").style.color = "red";
            document.getElementById("nameMeg").innerHTML = "用户名为6-10位英文或数字";
          }
          else { 
          ajax("../userhandle.ashx?operate=checkNameuserName=" + userName, function (resText) {
            if (resText == "forbid") {
              document.getElementById("nameMeg").style.color = "red";
              document.getElementById("nameMeg").innerHTML = "用户名含有非法词语";
            } else if (resText == "already have") {
              document.getElementById("nameMeg").style.color = "red";
              document.getElementById("nameMeg").innerHTML = "用户名已被使用";
            } else {
              document.getElementById("nameMeg").style.color = "green";
              document.getElementById("nameMeg").innerHTML = "可以使用";
            }
          })
          }
        }

    以上就是小编为大家带来的用AJAX实现页面登陆以及注册用户名验证的简单实例全部内容了,希望大家多多支持脚本之家~

    您可能感兴趣的文章:
    • jquery+ajax实现注册实时验证实例详解
    • PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
    • Ajax验证用户名或昵称是否已被注册
    • Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
    • Ajax注册用户时实现表单验证
    • ajax对注册名进行验证检测是否存在于数据库中
    • AJAX+JAVA用户登陆注册验证的实现代码
    • asp ajax注册验证之 防止用户名输入空格
    • 使用struts2+Ajax+jquery验证用户名是否已被注册
    • AJAX实现注册验证用户名
    上一篇:AJAX实现简单的注册页面异步请求实例代码
    下一篇:Ajax+PHP简单数据交互
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    用AJAX实现页面登陆以及注册用户名验证的简单实例 用,AJAX,实现,页面,登陆,