1 1。请求text数据,在success事件中手动解析 2 前台: 3 $.ajax({ 4 type: "post", 5 url: "checkFile.ashx", 6 data: { "filename": "2" }, 7 dataType: "text", 8 success: function (data) { 9 var json = eval('(' + data + ')'); 10 alert(json.Age); 11 } 12 }); 13 后台处理: 14 HttpResponse res = context.Response; 15 HttpRequest req = context.Request; 16 string code = req["filename"]; 17 string jsonString = "{\"Age\":28,\"Name\":\"张三\"}"; 18 //string jsonString = "{'Age':23,'Name':'abc'}"; 19 if (code != null) 20 { 21 res.Write(jsonString); 22 res.ContentType = "text/plain"; 23 res.End(); 24 } 25 在这种情况下,单引号分割和转移双引号分割,都可以。 26 27 28 29 30 31 2.请求json格式数据,jquery自动解析 32 前台: 33 $.ajax({ 34 type: "post", 35 url: "checkFile.ashx", 36 data: { "filename": "3" }, 37 // contentType:"application/json",----------在ajax请求ashx文件的json数据时,此属性不能被指定,而在请求webservices时,是必须指定的。 38 dataType: "json", 39 success: function (data) { 40 alert(data.Name); 41 } 42 }); 43 44 后台处理: 45 HttpResponse res = context.Response; 46 HttpRequest req = context.Request; 47 string code = req["filename"]; 48 string jsonString = "{\"Age\":28,\"Name\":\"张三\"}"; 49 if (code != null) 50 { 51 res.Write(jsonString); 52 res.ContentType = "text/plain"; 53 res.End(); 54 } 55 在这种情况下,只有转移双引号分割,才可以在前台被jquery方法自动解析。 56 57 58 3.带序列化的text数据前台解析 59 前台: 60 $.ajax({ 61 type: "post", 62 url: "checkFile.ashx", 63 data: { "filename": "2" }, 64 dataType: "text", 65 success: function (data) { 66 $("p").text(data); 67 var json = eval('(' + data + ')'); 68 alert(json.Name); 69 } 70 }); 71 json数据内容: {"Name":"zhangsan","Code":111,"Birthday":"\/Date(649666800000)\/"} 72 后台处理: 73 74 HttpResponse res = context.Response; 75 HttpRequest req = context.Request; 76 string code = req["filename"]; 77 Student stu = new Student { 78 Name="zhangsan", 79 Code=111, 80 Birthday=Convert.ToDateTime("1990-8-3") 81 }; 82 JavaScriptSerializer serializer=new JavaScriptSerializer(); 83 string jsonString = serializer.Serialize(stu); 84 json数据内容: "{\"Name\":\"zhangsan\",\"Code\":111,\"Birthday\":\"\\/Date(649666800000)\\/\"}" 85 if (code != null) 86 { 87 res.Write(jsonString); 88 res.ContentType = "text/plain"; 89 res.End(); 90 } 91 [Serializable] 92 public class Student 93 { 94 public string Name { get; set; } 95 public int Code { get; set; } 96 public DateTime Birthday { get; set; } 97 } 98 99 4. 带序列化的json 前台自动解析: 100 前台: 101 $.ajax({ 102 type: "post", 103 url: "checkFile.ashx", 104 data: { "filename": "3" }, 105 dataType: "json",--------------只要指定此处就可以,后台处理同上。 106 success: function (data) { 107 alert(data.Name); 108 } 109 });
Ajax请求ashx返回各类数据的常见处理方式
最新推荐文章于 2021-08-05 22:58:28 发布