c语言实现用户名重复检查,ajax检查用户名重复

本文介绍了使用AJAX进行用户名重复性检查的步骤,包括创建XMLHttpRequest对象、设置请求方式和URL、发送请求、监听状态变化及处理响应数据。重点讲述了在后端返回字符串数据并避免浏览器缓存的方法。示例代码展示了如何实现前端验证用户名是否已被占用。
摘要由CSDN通过智能技术生成

ajax检查用户名重复

1.获取ajax对象

new XMLHttpRequest();

IE6-8: new ActiveXOject("Microsoft.XMLHTTP");

兼容判断:if(XMLHttpRequest){...}else{...}

2.打开链接:open()

open(method,url,async):method:请求方式GET/POST,url:请求地址,async:true(异步,默认)/false(同步)

3.发送请求:send()

如果是POST请求,send方法要带参,带上我们要传输的数据。

POST请求的话,还要修改请求头,写在open方法后:setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

4.监听状态变化

onreadystatechange = function(){...}

5.状态判断:readyState==4&&status==200

readyState:4/3/2/1/0

0:请求未初始化,open()方法未执行

1:send()方法未调用

2:send()方法已经被调用,响应头已经获取,响应头的状态已经返回

3:部分responseText已经获取

4:整个请求过程完成

status:200/404/500

6.responseText:获得字符串形式的响应数据

responseXML:获得 XML 形式的响应数据

注意:1.后端不做跳转,直接返回数据  2.返回的数据类型肯定是字符串  3.使用print,不要使用println(会有换行)  4.有的浏览器会有缓存问题

如何解决浏览器缓存问题:传输的参数加上时间戳 url=“/ajax/checkUser?username=”+username+"&_timer="+new Date().getTime();

_timer:该参数名只要保证不与其他参数名重复即可

代码演示:检查用户名是否重复

fc635ec80a52d43ac204b820c153984a.gif

1

2

3

4

5

6

检查用户名是否重复

7

8

9

10 用户名:

11

12

13 校验

14

21

22

23 function checkUser() {

24 //获取数据

25 var username = document.getElementById("username").value;

26 alert(username);

27 //1.获取ajax对象

28 var xhr = null;

29 if(XMLHttpRequest) {

30 xhr = new XMLHttpRequest();

31 } else if(ActiveXObject) {

32 xhr = new ActiveXObject("Microsoft.XMLHTTP");

33 } else {

34 alert("你是啥???");

35 }

36 //2.open 带参数传输

37 xhr.open("GET", "/ajax/checkUser?username="+username, true);

38 //3.send

39 xhr.send();

40 //4.监听状态

41 xhr.onreadystatechange = function() {

42 if(xhr.status == 200 && xhr.readyState == 4) {

43 if(xhr.responseText == "false") {

44 document.getElementById("info").innerHTML="用户名已存在!!";

45 } else {

46 document.getElementById("info").innerHTML="用户名可以使用!!";

47 }

48 } else {

49 console.debug("error");

50 }

51 }

52 }

53

54

55

前端代码

fc635ec80a52d43ac204b820c153984a.gif

1 @WebServlet("/checkUser")

2 public class checkUserServlet extends HttpServlet {

3 private static final long serialVersionUID = 1L;

4 @Override

5 protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

6 String username = request.getParameter("username");

7 System.out.println(username);

8 if("admin".equals(username)) {

9 System.out.println("判断结果为true");

10 response.getWriter().print("false");//不用加ln,会出错

11 }else {

12 response.getWriter().print("true");

13 }

14 }

15 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值