jquery提交对象到一般处理程序(ashx)
class ReportRQ//实体参数 { public string startDate { get; set; } public string endDate { get; set; } public int TabSet { get; set; } } /// <summary> /// ReportDataApi 的摘要说明 /// </summary> public class ReportDataApi : IHttpHandler, IRequiresSessionState//启用session { private static string url = ConfigurationManager.AppSettings["GWHomeReportGateWay"]; public void ProcessRequest(HttpContext context) { Yeesky.Platform.Operator op = (Yeesky.Platform.Operator)context.Session["Op"]; if (op == null) { context.Response.ContentType = "application/json"; string error = JsonConvert.SerializeObject(new {R=false,DataType="js",JSContent= "alert('会话已过期,请您重新登录。');window.location.href='/Login.aspx';" });//目前返回的json对象 context.Response.Write(error); return; } context.Response.ContentType = "application/json";//前端接收到json对象,而非字符串 Stream inputStream = context.Request.InputStream; Encoding encoding = context.Request.ContentEncoding; StreamReader streamReader = new StreamReader(inputStream, encoding); string strJson = streamReader.ReadToEnd(); var rqJson = JsonConvert.DeserializeObject<ReportRQ>(strJson); string userCode = op.UserCode; string startDate = string.Empty; if (rqJson!=null && !string.IsNullOrWhiteSpace(rqJson.startDate)) startDate = rqJson.startDate; string endDate = string.Empty; if (rqJson!=null && !string.IsNullOrWhiteSpace(rqJson.endDate)) endDate = rqJson.endDate; if (!string.IsNullOrWhiteSpace(endDate)) endDate = DateTime.Parse(endDate).AddDays(1).ToString("yyyy-MM-dd"); string action = context.Request["action"]; string result = string.Empty; try { switch (action) { case "getcostanalysetaffic": result = GetCostAnalyseTaffic(startDate, endDate, userCode); break; case "reporttabset": result = ReportTabSet(rqJson.TabSet, userCode); break; case "getreporttabset": result = GetReportTabSet(userCode); break; case "getanyalyseuser": result=GetAnyalyseUser(startDate, endDate, userCode); break; case "getcostanalysedepartment": result = GetCostAnalyseDepartment(startDate, endDate, userCode); break; case "getcostanyalysechannel": result = CostAnyalyseChannel(startDate, endDate, userCode); break; case "getcostapprovalanalyse": result = GetCostApprovalAnalyse(startDate, endDate, userCode); break; } } catch (Exception ex) { throw; } context.Response.Write(result); } }
前端代码
function AjaxPostData(url, param, callback) { var rqOk = true; var rAjax = $.ajax({ //async: true, //异步执行 url: url, //要求为String类型的参数,(默认为当前页地址)发送请求的地址。就是在此发送需求到对应的后台去处理,后台根据这个url来区别不同的请求。 data:JSON.stringify(param), dataType: "json", type: "POST", contentType: "application/json; charset=utf-8", success: function (result) { try { if (result && result.R) { callback(result.Data); } else if (result && !result.R && result.JSContent) { eval(result.JSContent);//前端无法执行后端返回的js代码,使用evel } rqOk = true; } catch (e) { console.log(result); console.log(e); console.log(url); rqOk = false; } }, error: function (err) { console.log(err); console.log(url); }, failure: function (result) { ErrorBack(result); } }); return rAjax; }

浙公网安备 33010602011771号