AJAX检测用户名是否存在的方法


Posted in Javascript onMarch 24, 2021
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
 <h2>用户注册</h2>
 <form action="/doreg" method="post">
  <ul>
   <li>用户名:<input type="text" name="username" id="user"><span id="msg"></span></li>
   <li>密码:<input type="text" name="pwd"></li>
   <li>确认密码:<input type="text" name="repwd"></li>
   <li><input type="submit" value="注册"></li>
  </ul>
 </form>
 <script>
  let user = document.querySelector("#user")
  let msg = document.querySelector("#msg")
  user.onblur = function(){
   // alert("hello")
   // 第一步:创建一个ajax对象
   let xhr = new XMLHttpRequest(); // xhr表示ajax对象 此时ajax的状态是0
   // console.log(xhr.readyState)
   // 第二步:和服务器建立连接 get表示需要把数据放在url中
   xhr.open("get","/check?username="+user.value)// 此时ajax的状态是1
   // console.log(xhr.readyState)
   // 第三步:发出请求
   xhr.send(null); // null表示请求体是空 get请求的请求体都是空 post请求的请求体不空
   // 第四步:得到服务器响应的结果 监听ajax状态变化
   xhr.onreadystatechange = function () { // 当状态发生改变,就会触发onreadystatechange事件
    // console.log(xhr.readyState); // xhr.readyState获取ajax对象的状态
    if(xhr.readyState === 4 && xhr.status == 200){
     // xhr.responseText 获取服务器响应的数据
     // console.log(xhr.responseText)
     msg.innerHTML = xhr.responseText;
    }
   }
 
  }
 
 </script>
</body>
</html>
let express = require("express");
let bodyParser = require("body-parser");
let app = express();
 
// 给ejs模板引擎设置别名,别名叫html
app.engine("html",require("ejs").__express);
app.set("view engine","html");// 使用html模板引擎
// 指定模板的存放位置
app.set("views","./views")
 
// 配置bodyParser
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:false}))
 
// 路由
app.get("/",(req,res)=>{
 res.render("reg01"); // 渲染模块
})
 
// 处理注册
app.post("/doreg",(req,res)=>{
 // 获取客户端传递的数据
 let username = req.body.username.trim();
 let pwd = req.body.pwd.trim();
 let repwd = req.body.repwd.trim();
 // console.log(username,pwd,repwd)
 
 // 模拟从数据库中获取的用户信息
 let users = ["wangcai","xiaoqiang","admin"];
 if(users.find(user=>user===username)){
  res.send("<h1 style='color: red'>对不起,该用户名已经被注册了,请换个用户名~<a href='/'>返回注册页</a></h1>")
 }else{
  res.send("<h1 style='color: green'>恭喜你,该用户名可以使用~<a href='/'>返回注册页</a></h1>")
 }
})
 
app.listen(3000,()=>{
 console.log("server is running on 3000~")
})

 

Javascript 相关文章推荐
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
Sep 21 Javascript
获取鼠标在div中的相对位置的实现代码
Dec 30 Javascript
JS实现的一个简单的Autocomplete自动完成例子
Apr 16 Javascript
javascript常用函数归纳整理
Oct 31 Javascript
JavaScript操作Cookie详解
Feb 28 Javascript
JS实现页面数据无限加载
Sep 13 Javascript
利用jquery实现瀑布流3种案例
Sep 18 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
Dec 29 Javascript
vue中如何使用ztree
Feb 06 Javascript
js正则匹配markdown里的图片标签的实现
浅谈react路由传参的几种方式
Mar 23 #Javascript
一百多行代码实现react拖拽hooks
node中使用shell脚本的方法步骤
详解如何解决使用JSON.stringify时遇到的循环引用问题
vue 中 get / delete 传递数组参数方法
Mar 23 #Vue.js
JavaScript实现页面动态验证码的实现示例
You might like
PHP游戏编程25个脚本代码
2011/02/08 PHP
php读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
2012/03/05 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
webpack优化的深入理解
2018/12/10 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
python批量制作雷达图的实现方法
2016/07/26 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
Shein英国:女性时尚网上商店
2019/04/10 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
《再见了,亲人》教学反思
2014/02/26 职场文书
亲属关系公证书
2014/04/08 职场文书
银行自荐信怎么写
2015/03/05 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
python实现自动化群控的步骤
2021/04/11 Python
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle