使用原生AJAX 发送异步请求实现 常用的用户登录效果

HTML部分

<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>...</title>
  <style type="text/css">
	.modal{
		position:fixed;
		left:0;top:0;bottom:0;right:0;
		background:rgba(0,0,0,.2);
		display:none;
	}
	.modal.active {
		display:block;
	}
	.modal-dialog{
		width:350px;
		margin:10% auto;
	}
	.modal-content{
		background:#fff;
		border-radius:5px;
		padding:30px;
	}
	.erro{
		width:100%;
		color:red;
	}
  </style>
 </head>
 <body>
		<p id="loginArea">
			<a href="#" id="btLogin">用户登录</a>
		</p>
		<div class="modal" id="modalLogin">  <!--模态框遮罩层-->
			<div class="modal-dialog">
				<div class="modal-content">
					<br>
						手机号: <input type="text" name="phone"><br>
						密码号: <input type="passwrod" name="pwd"><br>
						<input id="sub" type="button" value="提交">
				</div>
			</div>
		</div>
		<script type="text/javascript">
			btLogin.onclick = function(e){     //绑定模态框点击显示行为
				e.preventDefault();
				modalLogin.className="modal active";
			}
			sub.onclick=function(){      // 绑定异步提交数据方法
				var ph = document.querySelectorAll("input")[0].value;
				var pw = document.querySelectorAll("input")[1].value;
				//console.log(ph,pw);
				var xhr = new XMLHttpRequest();
				xhr.onreadystatechange = function(){
					if(xhr.readyState===4){
						if(xhr.status===200){
							doResponse(xhr,ph);
						}else{
							console.log("请求失败")
						}
					}
				}
				xhr.open("POST","mail_login.php",true);
				xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");    // POST 方法需要设置请求头部
				xhr.send("phone="+ph+"&pwd="+pw);
				function doResponse(xhr,ph){    // 响应处理函数
					if(xhr.responseText==="succ"){
						modalLogin.className="modal";
						var span = document.createElement("span");
						span.innerHTML="欢迎回来:"+ph;
						loginArea.removeChild(loginArea.children[0]);
						loginArea.appendChild(span);
					}else if(xhr.responseText==="err"){
						var div = document.querySelector(".modal-content");
						var span = document.createElement("span");
						span.innerHTML="用户名或密码有误";
						span.className="erro";
						div.insertBefore(span,div.firstChild);
					}
				}
			}
		</script>
 </body>
</html>

  

简单的PHP 响应如下

<?php
@$ph = $_REQUEST[‘phone‘] or die(‘phone required‘);
@$pw = $_REQUEST[‘pwd‘] or die(‘pwd required‘);
$conn =mysqli_connect(‘127.0.0.1‘,‘root‘,‘‘,‘sohu‘,3306);
$sql = "SET NAMES UTF8";
mysqli_query($conn,$sql);
$sql = "SELECT * FROM mail WHERE phone=‘$ph‘ AND pwd=‘$pw‘";
$result = mysqli_query($conn,$sql);
$list = mysqli_fetch_row($result);
if($list===null){
	echo "err";
}else{
	echo "succ";
}

  

时间: 2024-11-10 10:28:24

使用原生AJAX 发送异步请求实现 常用的用户登录效果的相关文章

AJAX的来龙去脉(由来)-如果被封装出来的--ajax发送异步请求(四步操作)

<黑马程序员_超全面的JavaWeb视频教程vedio\JavaWeb视频教程_day23_ajax> \JavaWeb视频教程_day23_ajax\day23ajax_avi\14.打包ajax生成小工具.avi;  有介绍: 个人理解:就是封装了 XMLHttpRequest 的请求方法:演变而成我们常用的 ajax: =====原始的请求方式: ajax发送异步请求(四步操作) 1. 第一步(得到XMLHttpRequest) * ajax其实只需要学习一个对象:XMLHttpRequ

使用原生ajax发送post请求完整案例

使用ajax发送数据实现前后台的交互,我想是web开发最基础的技能了.近来dz开发因为不兼容jquery,所以只能使用原生js发送数据,不想还遇到很多问题.在这里分析总结一下.先来一个使用ajax发送post表单数据的案例. <html> <head> <title> ajax发送post请求实例 </title> </head> <body> <form method="post" action="

使用Ajax发送异步请求的步骤

1.获取Ajax对象:获取XMLHttpRequest对象实例 function getXhr(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest();//非IE浏览器 }else{ xhr = new ActiveXObject('Microsoft.XMLHttp');//IE浏览器 } return xhr; } 2.设置回调函数:为Ajax对象的readystatechange事件设定响应函数 xh

ajax发送异步请求

一:得到XMLHttpRequest对象 ajax其实只需要学习XMLHttpRequest一个对象 大多数浏览器都支持: var xmlHttp = new XMLHttprequest(); IE 6.0: var mltHttp = new ActiveXObject("Msxml2.XMLHTTP"); IE 5.5 及更早的IE var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); * 编写创建XMLH

Ajax发送异步请求(四步操作)

1.第一步(得到XMLHttpRequest) *ajax其实只需要学习一个对象:XMLHttpRequest,如果掌握了它,就掌握了ajax!! *得到XMLHttpRequest >大多数浏览器都支持:var xmlHttp = new XMLHttpRequest(); >IE6.0: var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); >IE5.5以及更早版本:var xmlHttp = new ActiveX

使用AJAX技术发送异步请求,HTTP服务端推送

使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于XMLHttpRequest让我们在不重载页面的情况下和服务器进行数据交换. 加上JavaScript和DOM(Document Object Model,文档对象模型),我们就可以在接收到响应数据后局部更新页面.XML指的是数据的交互模式,可以是纯文本(Plain Text).HTML或JSON.

JavaScript之Ajax-2 Ajax(使用Ajax发送get请求、使用Ajax发送post请求)

一.使用Ajax发送get请求 发送异步请求的步骤 - 获取Ajax对象:获取 XMLHttpRequest对象实例 - 创建请求:调用XMLHTTPRequest对象的open方法 - 设置回调函数:为Ajax对象的 onreadystatechange事件设定响应函数 - 发送请求:调用Ajax对象的send方法 - 获取Ajax对象     - 创建请求 - 注意: - true:表示发送异步请求(当Ajax对象发送请求时,用户仍然可以对当前页面做其它的操作) - false:表示发送同步

Ajax发送post请求

//创建Ajax对象(兼容处理) function createXHR() { var xhr = null; if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if(window.ActiveXObject) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } return xhr; } //发送post请求 function request(){ xhr.open('P

ASIHTTPRequest框架使用(2)--发送异步请求

同步请求一般只是用在某个子线程中使用,而不在主线程中使用.异步请求的用户体验要比同步请求好,因此一般情况下异步请求用的多. ASIHTTPRequest和ASIFormDataRequest两个请求类都可以发送异步请求.ASIFormDataRequest继承了ASIHTTPRequest异步请求方法,所以重点介绍ASIHTTPRequest的异步请求. 1.借助Delegate处理请求 - (void)startRequest { NSString *strUrl = [[NSString a