Ajax与ashx异步请求的简单案例:
前台页面(aspx):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="js/jquery-1.5.1.js" type="text/javascript"></script>
<script type="text/javascript">
function gettext() {
var intxt = $("#intxt").val();
$.ajax({
type: "POST",
cache: false,
url: 'OutText.ashx',
data: { InText: intxt },
dataType: "text",
beforeSend: function () { },
success: function (data) {
var outtext = document.getElementById("<%=outtxt.ClientID %>");
outtext.innerHTML = data;
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
alert(XmlHttpRequest.responseText);
}
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="intxt" type="text" size="20" onblur="gettext()"/>
<asp:Label ID="outtxt" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
type: 传递方式。
cache:是否使用缓存。
url:接收的url地址。
data:传递参数。
datatype:传递参数的格式。
beforeSend:局部事件,请求开始时触发。
success:请求成功事件。
error:请求失败事件。
下面是OutText.ashx文件:
<%@ WebHandler Language="C#" Class="OutText" %> using System;
using System.Web; public class OutText : IHttpHandler { public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
HttpRequest Request = context.Request;
string intxt = context.Request["InText"].ToString();
context.Response.Write(intxt);
context.Response.End();
} public bool IsReusable {
get {
return false;
}
}
}
好了!一个简单的Ajax异步请求就完成了。如果要与数据库交互的话,可以在ashx文件里面调用其他操作类。