myajax.js

 

//创建路由器对象

const express=require('express');

//引入连接池模块

const pool=require('../pool.js');

//创建路由器对象

var router=express.Router();

//测试服务器接收ajax请求的接口

router.get("/ajaxDemo",(req,res)=>{

console.log(111);

res.send("第一个程序");

});

//2.测试带参数的get请求

router.get("/ajaxDemo1",(req,res)=>{

var $uname=req.query.uname;

var $upwd=req.query.upwd;

if(!$uname){

res.send("用户名没有接收到");

return;

}

if(!$upwd){

res.send("密码没有接收到");

return;

}

res.send("用户名为"+$uname+"密码为"+$upwd);

});

//3.get请求登录接口(应该用Post)

//http://127.0.0.1:8080/ajax/login_get?uname=yaya&upwd=123456

router.get("/login_get",(req,res)=>{

//获取请求中的数据

var $uname=req.query.uname;

var $upwd=req.query.upwd;

//验证数据正确的得到

if(!$uname){

res.send("没有获取到用户名称");

retrun;

};

if(!$upwd){

res.send("没有获取到用户密码");

return;

};

//使用连接池访问数据库

var sql="select * from xz_user where uname=? and upwd= ?";

pool.query(sql,[$uname,$upwd],(err,result)=>{

if(err){throw err };

if(result.length>0){

res.send("登录成功");

}else{

res.send("用户名或者密码错误");

};

});

});

//4.get接口请求登录

router.get("/login_post",(req,res)=>{

var $uname=req.query.uname;

var $upwd=req.query.upwd;

if(!$uname){

res.send("用户名不能为空");

return;

};

if($upwd==""){

res.send("密码不可以为空");

return;

};

var sql="select * from xz_user where uname=? and upwd=?";

pool.query(sql,[$uname,$upwd],(err,result)=>{

if(err) {throw err};

if(result.length>0){

res.send("登录成功");

}else{

res.send("用户名或密码错误");

};

});

});

 

 

//导出路由器对象

module.exports=router;

login_get_ajax.html

 

<body>

<input type="text" id="uname" >

<br><br>

<input type="text" id="upwd">

<br><br>

<button onclick="login()">登录</button>

<script>

function login(){

var u_uname=uname.value;

var u_upwd=upwd.value;

var xhr=new XMLHttpRequest();

xhr.onreadystatechange=function(){

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

var result=xhr.responseText;

alert(result);

};

};

var url="http://127.0.0.1:8080/ajax/login_post?uname="+u_uname+"&upwd="+u_upwd;

xhr.open("get",url,true);

xhr.send();

};

</script>

</body>

最新文章

  1. NGINX 配置 SSL 双向认证
  2. SharePoint Server 2016 IT Preview 先睹为快
  3. hive函数总结
  4. 一步步学敏捷开发:4、Scrum的3种角色
  5. kali实用链接
  6. px_ipc_name.c
  7. cocos2d-x 二进制文件的读写
  8. Windows下快速安装Xgboost(无需Git或者VS)
  9. 基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多
  10. C++ 三大特性:封装、继承、多态性
  11. dtNavMeshQuery::findLocalNeighbourhood m_tinyNodePool-&gt;getNode dtHashRef整数哈希 getPortalPoints dtOverlapPolyPoly2D
  12. C#创建、读写、增加、删除XML操作
  13. Mac 启动或者禁用翻盖自动开关机
  14. Delphi文件目录操作(转载)
  15. 深入研究 UCenter API For .NET
  16. 2013 C#单元测试
  17. FunDA(14)- 示范:并行运算,并行数据库读取 - parallel data loading
  18. 什么是mvc模式
  19. Integration Services 变量
  20. 【linux】Linux系统信息查看命令大全

热门文章

  1. SoringCloud(四) - 微信获取用户信息
  2. 华为开发者大会HDC2022:HMS Core 持续创新,与开发者共创美好数智生活
  3. Vue3 企业级优雅实战 - 组件库框架 - 1 搭建 pnpm monorepo
  4. 写一个shell,自动执行jmeter测试脚本
  5. 畅联新接入物联设备的情况:丰宝 智慧消防领域的 NB水压一体机、智能消防栓、NB液位一体机
  6. zk系列三:zookeeper实战之分布式锁实现
  7. 森林野火故事2.0:一眼看穿!使用 Panel 和 hvPlot 可视化 ⛵
  8. kubernetes数据持久化PV-PVC详解(一)
  9. day14 I/O流——序列化与反序列化 &amp; 计算机网络五层架构 &amp; TCP的建立连接与断开连接
  10. Django的manytomany字段