實現AJAX功能,核心就是XMLHttpRequest,並且如今大多數瀏覽器都支持這個核心組件對象。javascript
實例:實現無刷新登錄驗證html
1.前臺代碼java
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function CheckUser() {
//構建xhr對象。
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
//xhr的狀態改變事件(xhr狀態會自動改變,4表明 完成,200表明 ok)
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var ret = xhr.responseText; //獲取返回信息
if (ret == "1") {
//window.location.href = "Default3.aspx"; 跳轉到主頁
alert("登錄成功");
}
else {
alert("登錄失敗!用戶名或者密碼錯誤!");
}
}
}
xhr.open("post", "Handler.ashx?id=" + Math.random(), true);//true 表明異步請求
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); //設置請求頭,必須在open以後設置
xhr.send("name=" + document.getElementById("userName").value + "&pwd=" + document.getElementById("passWord").value);//發送信息到通常處理程序。固然 也能夠發送到自己頁面驗證。
return false;
}
</script>
</head>
<body>
<form id="form1" runat="server" method="post">
<div>
<fieldset>
<legend>AJAX登錄驗證</legend>
<table>
<tr><td>用戶名:</td><td><input type="text" id="userName" name="name"/></td></tr>
<tr><td>密 碼:</td><td><input type="text" id="passWord" name="pwd"/></td></tr>
<tr><td></td><td align="left"><input type="submit" id="submit" value="登錄" onclick=" return CheckUser();" /></td></tr>
</table>
</fieldset>
</div>
</form>
</body>
</html>數據庫
後臺代碼瀏覽器
建立通常處理程序,Handler.ashxapp
<%@ WebHandler Language="C#" class="Handler" %>
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string name = context.Request.Form["name"];//用戶名
string pwd = context.Request.Form["pwd"];//密碼
if (name=="sg"&&pwd=="sg")//模擬驗證,實際: 數據庫驗證
{
context.Response.Write("1");
}
else
{
context.Response.Write("0");
}
//context.Response.Write("Hello World");
}
public bool IsReusable {
get {
return false;
}
}
}dom