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>

AJAX容易出错地方,错误处理的更多相关文章

  1. Spring Security登录超时,angular ajax请求出错自动跳转至登录页(jQuery也适用)

    公司开发采用Spring Security+AngualerJS框架,在session过期之后,ajax请求会直接出错.本文介绍如何实现出错情况下自动跳转至登录页. 整体思路是,session过期后, ...

  2. mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)

    mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)()里面的为shel ...

  3. ajax请求出现400错误

    ajax请求出现400错误,如题.百度了只有两种情况,一个参数错误,二是所谓的参数过长. 因为我传递的base64的图片参数,很长.刚开始以为是这个原因.后来发现不是,原因是参数错误.freemake ...

  4. SpringMVC的AJAX请求报406错误

    SpringMVC的AJAX请求报406错误原因有两种:1.jackson包没有引入 2.如果已经引入jackson包了还报406的错误,那么就有可能是请求的url路径是.html结尾,但是返回的数据 ...

  5. TP5 ajax请求报500错误

    场景:几个站点从阿里云迁移到腾讯云,然后 TP5项目 ajax请求报500错误 数据返回成功,但是http状态码是500,不走success,一直走error 如下图: 原因分析: 服务器centos ...

  6. PHP 中使用ajax时一些常见错误总结整理

    这篇文章主要介绍了PHP 中使用ajax时一些常见错误总结整理的相关资料,需要的朋友可以参考下 PHP作为后端时,前端js使用ajax技术进行相互信息传送时,经常会出错误,对于新手来说有些手足无措.总 ...

  7. Jquery Ajax简单封装(集中错误、请求loading处理)

    Jquery Ajax简单封装(集中错误.请求loading处理) 对Jquery Ajax做了简单封装,错误处理,请求loading等,运用到项目中集中处理会很方便. 技术层面没有什么好说的,请求是 ...

  8. 【ABAP系列】SAP webservice HTTP框架出错 404错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP webservice H ...

  9. ajax中的stasus错误详解

    一.英文版解析 0: (Uninitialized) the send( ) method has not yet been invoked. 1: (Loading) the send( ) met ...

  10. ajax请求报语法错误

    今天改代码修正完一个ajax请求后,调试发现出错进error方法,查看错误信息报语法错误,具体是调用parseJSON方法时出错,因为我是用json方式传递的参数,所以第一时间查看data参数是否正确 ...

随机推荐

  1. 7.websocket收发消息

    客户端主动向服务端发起websocket连接,服务端接收到连接后通过(握手) 客户端 websocket socket = new WebSocket('ws://127.0.0.1/ws/'); 服 ...

  2. C# Static关键词的使用

    一.C#中类的方法分为静态方法和非静态方法 静态方法有Static关键词修饰 静态方法归类所有,而非静态方法归类的实例所有:静态方法无需类去实例化可直接调用 静态成员属于类所有,为各个类的实例所公用, ...

  3. ES6 学习笔记(六)基本类型String

    字符串String 1.字面量 需要注意的地方: 由单引号或双引号括起来的字符序列. 单双引号可以嵌套,由最外围引号定界字符串 字符串字面量可以拆分成数行,每行必须以反斜线(\)结束,且反斜线都不计入 ...

  4. Electron是什么以及可以做什么

    新用户购买<Electron + Vue 3 桌面应用开发>,加小册专属微信群,参与群抽奖,送<深入浅出Electron>.<Electron实战>作者签名版. 1 ...

  5. CH58X/CH57X/V208 Observer(观察者)例程讨论讲解

    使用的是沁恒的CH582M的Observer例程与官方的demo板. 本例程的功能是主机扫描到从机的MAC地址并打印出来. 先对宏定义进行理解讨论. 最大响应扫描数为8,在串口调试助手那里可以看到打印 ...

  6. C#使用GDI+同时绘制图像和ROI在picturebox上

    Bitmap bmp; /// <summary> /// 绘制图像 /// </summary> /// <param name="g">Gr ...

  7. C#与Halcon联合编程之用PictureBox控件替代HWindowControl控件

    在使用HALCON和C#联合编程,有时候要使用halcon的HWindowControl控件,但是我发现,HWindowControl的图片显示控件,不能使用GDI+绘制ROI,不知道为什么,反正我测 ...

  8. Java:ArrayList的基本使用(学习笔记)

    ​ 集合和数组的对比(为什么要有集合) 分为俩点 1. 长度:数组的长度是固定的,集合的长度是可变的. 2. 存储类型: 数组:可以存储基本数据类型,引用数据类型. 集合:只能存储引用数据类型. 小t ...

  9. 如何在kali Linux上安装VMware Tools

    作用: 1.让虚拟机和本地上的文件可以互传,直接拖动就可以实现转接 2.可在虚拟机上执行本地脚本 3.本地时钟与虚拟机同步 4........... 方法: 1.运行虚拟机 2.在上方菜单栏中点击安装 ...

  10. Java开发学习(四十六)----MyBatisPlus新增语句之id生成策略控制及其简化配置

    在前面有一篇博客:Java开发学习(四十一)----MyBatisPlus标准数据层(增删查改分页)开发,我们在新增的时候留了一个问题,就是新增成功后,主键ID是一个很长串的内容. 我们更想要的是按照 ...