js:
$.ajax({
url: "ashx/Demo.ashx/",
type: "Get",
dataType: "json",
data: "action=GetData",
success: function (data) {
//do something..
},
error: function (XMLHttpRequest, textStatus, errorThrown) { alert(textStatus); }
});
ashx:
关键方法
public class Demo : IHttpHandler, IRequiresSessionState //如果需要调用Session 继承IRequiresSessionState接口 调用示例: HttpContext.Current.Session["SessionName"]
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string action = context.Request["action"].ToString();
System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(action);
if (methodInfo != null)
{
methodInfo.Invoke(this, new object[] { context });
}
}
public void GetData(HttpContext context)
{
//do something..
context.Response.Write("returns jsonData"); //返回json等等...
}
}
其实也啥特别的,就是把方法名称当参数传递过去。