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.extend()的实现方式详解及实例
Jun 29 Javascript
浏览器窗口加载和大小改变事件示例
Feb 27 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 Javascript
JS实现上下左右对称的九九乘法表
Feb 22 Javascript
bootstrap输入框组代码分享
Jun 07 Javascript
JS实现拖拽的方法分析
Dec 20 Javascript
JavaScript之Canvas_动力节点Java学院整理
Jul 04 Javascript
使用JavaScript实现点击循环切换图片效果
Sep 03 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
Sep 22 Javascript
webpack中使用iconfont字体图标的方法
Feb 22 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
Aug 28 Javascript
js实现随机8位验证码
Jul 24 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实现多张图片上传加水印技巧
2013/04/18 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
Python入门之modf()方法的使用
2015/05/15 Python
python处理大数字的方法
2015/05/27 Python
Python中字符串与编码示例代码
2019/05/20 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
法律专业应届本科毕业生求职信
2013/10/25 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
销售合作意向书范本
2015/05/08 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python