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文件里面调用其他操作类。