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 相关文章推荐
jquery submit ie6下失效的原因分析及解决方法
Nov 15 Javascript
使用jQuery仿苹果官网焦点图特效
Dec 23 Javascript
JavaScript使用cookie实现记住账号密码功能
Apr 27 Javascript
jQuery动画效果实现图片无缝连续滚动
Jan 12 Javascript
JavaScript中匿名函数的用法及优缺点详解
Jun 01 Javascript
jQuery与JavaScript节点创建方法的对比
Nov 18 Javascript
使用Ajax生成的Excel文件并下载的实例
Nov 21 Javascript
jQuery UI仿淘宝搜索下拉列表功能
Jan 10 Javascript
用JavaScript实现让浏览器停止载入页面的方法
Jan 19 Javascript
JS运动特效之任意值添加运动的方法分析
Jan 24 Javascript
解决vue 更改计算属性后select选中值不更改的问题
Mar 02 Javascript
JS访问对象两种方式区别解析
Aug 29 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实现递归循环每一个目录
2010/08/08 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
Python基础之函数用法实例详解
2014/09/10 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
numpy.ndarray 实现对特定行或列取值
2019/12/05 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
Python如何转换字符串大小写
2020/06/04 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
c++工程师面试问题
2013/08/04 面试题
艺术教育实施方案
2014/05/03 职场文书
超市促销活动总结
2014/07/01 职场文书
办理信用卡工作证明
2014/09/30 职场文书
房产遗嘱范本
2015/08/06 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技