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

下面我就为大家带来一篇用ajax实现页面登陆以及注册用户名验证的简单实例。现在就分享给大家,也给大家做个参考。

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

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

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

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

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

创建XMLHTTPRequest对象

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

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

登录后复制

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

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

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

注意:   

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

AJAX的封装

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

简单AJAX封装后代码:

     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(); //这时才开始发送请求    }

登录后复制

封装完成后,我们可以开始写登陆判断代码(我是用的是.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=login&userName=" + 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=checkName&userName=" + 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 post请求跳转页面

Ajax提交表单页面刷新很快的解决方法

Ajax打开新窗口被浏览器拦截的两种解决办法

以上就是用AJAX实现页面登陆以及注册用户名验证的简单实例的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2758876.html

(0)
上一篇 2025年3月8日 08:19:18
下一篇 2025年3月6日 16:07:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 基于ajax html实现文件上传技巧总结

    这篇文章主要为大家详细总结了基于ajax html实现文件上传技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 引语:大家都知道,html中上传文件就一个input,type=file就搞定了。但是,这个标签的样式,实在不值得提点什么…

    编程技术 2025年3月8日
    200
  • Ajax 上传图片并预览的简单实现

    下面我就为大家带来一篇ajax 上传图片并预览的简单实现。现在就分享给大家,也给大家做个参考。 1. 直接上最简单的 一种 ajax 异步上传图片,并预览 html: nbsp;html>图片上传 | cookie  file:   …

    编程技术 2025年3月8日
    200
  • 基于Ajax表单提交及后台处理简单的应用

    下面我就为大家带来一篇基于ajax表单提交及后台处理简单的应用。现在就分享给大家,也给大家做个参考。 首先先说下表单提交吧,要提交表单那么就得先收集表单数据(至于验证这个我就不说了,要说留下下次吧),有了jquery取个html的值还是简单…

    编程技术 2025年3月8日
    200
  • Ajax实现省市区三级级联

    这篇文章主要为大家详细介绍了ajax实现省市区三级级联,数据来自mysql数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 address.html nbsp;html>Insert title here  /** * 得到X…

    编程技术 2025年3月8日
    200
  • Ajax表单异步上传文件实例代码

    这篇文章主要介绍了ajax表单异步上传文件实例代码(包括文件域),非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧 1.起因 做前台页面时,需要调用WebAPI的Post请求,发送一些字段和文件(相当于把表单通过ajax异步发送出去,得到…

    编程技术 2025年3月8日
    200
  • IE下Ajax提交乱码的快速解决方法

    下面我就为大家带来一篇ie下ajax提交乱码的快速解决方法。现在就分享给大家,也给大家做个参考。 哈哈,试了这么多还是encodeURIComponent管用啊!!!! 在汉字的位置加个保护措施:encodeURIComponent(par…

    编程技术 2025年3月8日
    200
  • ajax设置async校验用户名是否存在的实现方法

    下面我就为大家带来一篇ajax设置async校验用户名是否存在的实现方法。现在就分享给大家,也给大家做个参考。 新增一个用户的时候,需要判断这个手机号码是否存在,最开始的想法很简单在textbox上设置一个onmouseout事件,在IE下…

    2025年3月8日
    200
  • Ajax获取数据然后显示在页面的实现方法

    下面我就为大家带来一篇ajax获取数据然后显示在页面的实现方法。现在就分享给大家,也给大家做个参考。 主要功能流程介绍 循环获取列表数据 点击列表数据进入详情页 点击报名参加弹出报名成功提示框 点击提示框中的确定按钮,跳回列表页 代码实现流…

    2025年3月8日
    200
  • ajax同步验证单号是否存在的方法

    这篇文章主要介绍了ajax同步验证单号是否存在的方法,涉及基于ajax的数据交互相关操作技巧,需要的朋友可以参考下 本文实例讲述了ajax同步验证单号是否存在的方法。分享给大家供大家参考,具体如下: //保存前执行的方法,ajax同步调用后…

    编程技术 2025年3月8日
    200
  • Ajax 异步加载解析

    这篇文章主要为大家详细介绍了ajax 异步加载,什么是ajax 异步加载,如何实现ajax 异步加载,感兴趣的小伙伴们可以参考一下 AJAX (Asynchronous JavaScript and XML,异步的 JavaScript 和…

    2025年3月8日
    200

发表回复

登录后才能评论