ajax检查用户名重复
2019-08-26 06:11:19来源:博客园 阅读 ()
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:该参数名只要保证不与其他参数名重复即可
代码演示:检查用户名是否重复
1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>检查用户名是否重复</title> 7 </head> 8 9 <body> 10 用户名:<input type="text" name="username" id="username" /> 11 <br /> 12 <span id="info"></span><br /> 13 <button type="button" id="checkUser" onclick="checkUser()">校验</button> 14 <!--用ajax完成post请求时, 15 1.button的类型不能是submit, 16 submit会有一个浏览器默认事件(即提交后会自动刷新页面) 17 2.请求头的Content-Type要改变,写在open之后 18 xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 19 3.send(要传输的数据写在这里) 20 --> 21 </body> 22 <script type="text/javascript"> 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 </script> 54 55 </html>前端代码
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 }后端代码
原文链接:https://www.cnblogs.com/deng3/p/11382317.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- AJAX 请求真的不安全么? 2020-04-20
- 阿里祭出大器,Java代码检查插件 2020-04-17
- dubbo的启动时检查 2020-01-13
- Struts2 处理AJAX请求 2019-12-28
- 使用Servlet处理AJAX请求 2019-12-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash