【个人笔记】《知了堂》ajax的get及post请求
ajax
执行步骤
// 步骤
设置事件 调用函数
- 创建一个XHR对象
- 打开ajax通道,链接服务器,配置请求信息和参数
- 发送数据
- 设置回调函数
- 服务器接受请求,处理请求,查询数据库,响应 及 返回数据
- 回调函数接受数据,执行回调函数
- 回调函数中 更新页面。
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>表单</title>
</head>
<body>
<form action="login" method="get">
<h1>登陆</h1>
用户名:<input type="text" name="userName" onblur="checkUser()">
<span id="msg"></span>
密码:<input type="password" name="pwd">
<input type="submit">
</form>
<script>
function checkUser(){
var userName=document.forms[0].elements[0].value;
var xhr='';
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();//DOM
}else if(window.ActiveXObject){
xhr=new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器标准
}
// 打开链接配置参数,
// * 1、 请求方式 就是要告诉它是get、post
// * 2、 请求地址 url
// * 3、同步 还是 异步(async),这个跟页面刷不刷新没有关系,是对程序本身的考虑,默认是异步请求true,true异步请求,这个是ajax里面的两个机制,true是异步表示当有东西回来了才执行,同步请求是false是比如有多个ajax请求,他会等一个结束了才执行第二个,
xhr.open("get","checkUser.do?userName="+userName,true);
xhr.send(null);//get方式 send是null
//请求过后会有一个回调函数等待服务器响应在接受数据
xhr.onreadystatechange=function(){
console.log(xhr.responseText)
}
}
</script>
</body>
</html>
连接数据库
示例:
const mysql=require("mysql"); //引用数据库模块
const checkUser=function(req,resp){
console.log(req)
let userName=req.query.userName;
let pool=mysql.createPool({
host:"主机地址",
port:"主机端口",
user:"用户名",
password:"主机密码",
database:"数据库名"
})
pool.getConnection(function(error,connection){
if(error){
console.log(error)
}
let sqlStr="select * from t_user where u_name=?";
connection.query(sqlStr,[userName],function(err,data){
console.log(data)
//因为是注册嘛所以是data的长度大于0的时候说明数据库里面已经有这个账号了
if(data.length>0){
resp.send("用户名已经存在");
}else{
resp.send("你好棒,快去注册吧。");
}
});
connection.release();
})
}
module.exports={
checkUser:checkUser
}
服务器引用
const loginCheck=require("数据库模板地址");
服务器拦截请求
app.get("/拦截地址",loginCheck.checkUser)
【个人笔记】《知了堂》ajax的get及post请求的更多相关文章
- 前端笔记之服务器&Ajax(下)数据请求&解决跨域&三级联动&session&堆栈
一.请求后端的JSON数据 JSON是前后端通信的交互格式,JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. JSON是互联网各个后台与 ...
- [知了堂学习笔记]_JSON数据操作第2讲(JSON的封装与解析)
上一讲为大家讲了什么是JSON,那么这一讲为大家带来了在WEB项目中JSON的用法,也就是JSON的封装与解析. 此图是数据库中的部分内容 一.JSON封装 所谓的JSON封装,指的是在Servlet ...
- [知了堂学习笔记]_ajax的两种使用方式
一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都 ...
- [知了堂学习笔记]_JSON数据操作第1讲(初识JSON)
一.认识JSON 什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式..它基于 ECMAScript (w3c制定的js规 ...
- [知了堂学习笔记]_纯JS制作《飞机大战》游戏_第3讲(逻辑方法的实现)
整体展示: 上一讲实现了诸多对象,这次我们就需要实现许多逻辑方法,如控制飞机移动,判断子弹击中敌机,敌机与英雄飞机相撞等等.并且我们在实现这些功能的时候需要计时器去调用这些方法.setInterval ...
- [知了堂学习笔记]_纯JS制作《飞机大战》游戏_第2讲(对象的实现及全局变量的定义)
整体展示: 一.全局变量 /*===================玩家参数==========================*/ var myPlane; //英雄对象 var leftbtn = ...
- [知了堂学习笔记]_纯JS制作《飞机大战》游戏_第1讲(实现思路与游戏界面的实现)
整体效果展示: 一.实现思路 如图,这是我完成该项目的一个逻辑图,也是一个功能模块完成的顺序图. 游戏界面的完成 英雄飞机对象实现,在实现发射子弹方法过程中,又引出了子弹对象并实现.在此时,英雄飞机能 ...
- 【知了堂学习笔记】_String、StringBuffer与StringBuilder的区别
String Stringbuffer StringBuilder的区别: 1.string是字符串常量,且长度是不可改变的,Stringbuffer.stringBuilder是字符串变量 2.S ...
- [知了堂学习笔记]_MVC设计模式与JavaWEB三层架构
一.MVC设计模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controlle ...
- [知了堂学习笔记]_eclipse引入svn插件,并将项目同步到svn
1. eclipse中不存在SVN问题的解决 1.1发现Team->Share project 下没有svn. 1.2下载安装svn插件. 选择help->Eclipse Marketpl ...
随机推荐
- .Net Ajax跨域请求实现
下一阵子要做一个网站Web储备一下知识,AJAX 实现跨域请求,估计会用到,以前在学 WebServer 时候老师整理的一个文档,现在便于查阅和使用现在放到我的博客中. 一般平时我写web页面的时 ...
- 修改Intellij IDEA中工程对应的Java SDK、Scala SDK
如果编译Scala工程时,遇到如下异常: can't expand macros compiled by previous versions of Scala 很可能是工程的scala版本,和依赖的包 ...
- 用户信息文件/etc/passwd,影子文件/etc/shadow,组信息文件/etc/group,组密码文件/etc/gshadow,用户管理相关文件
/etc/passwd man 5 passwd查看配置文件信息 account:password:UID:GID:GECOS:directory:shell 帐号:密码:用户ID:组ID:一般的信息 ...
- sqlserver 存储过程 修改
CREATE PROCEDURE [dbo].[UpdateMessage] @strTable varchar(), --要修改的表 @strColumn varchar(),--要修改的列名(如果 ...
- iOS 模拟器安装应用
iOS模拟器是苹果Xcode IDE的一部分,主要用来为Mac,iPhone和iPad创建应用程序,为了给iOS模拟器打包应用程序,利用–package 在命令行上执行ADT并使用–target来指定 ...
- C#程序打包安装部署
今天为大家整理了一些怎样去做程序安装包的具体文档,这些文档并不能确保每个人在做安装包的时候都能正确去生成和运行,但是这些文档的指导作用对于需要的朋友来说还是很有必要的,在实际产品的安装部署过程中可能有 ...
- 使用C#开发数据库应用系统 习题
错题积累 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
- java中的位操作
之前做项目的时候使用位操作不是很多,今天在刷leetcode上题目的时候用到了位操作,是leetcode中的第29题Divide Two Integers. 一.java的位操作: 位运算表达式由操作 ...
- selenium WebDriver 八种定位方式源码
/* * 多种元素定位方式 */ package com.sfwork; import java.util.List; import org.openqa.selenium.By; import or ...
- Netty之心跳检测技术(四)
Netty之心跳检测技术(四) 一.简介 "心跳"听起来感觉很牛X的样子,其实只是一种检测端到端连接状态的技术.举个简单的"栗子",现有A.B两端已经互相连接, ...