首页 > 代码库 > ajax、json一些整理(1)

ajax、json一些整理(1)

1。请求text数据,在success事件中手动解析

前台:
                $.ajax({
                    type: "post",
                    url: "checkFile.ashx",
                    data: { "filename": "2" },
                    dataType: "text",
                    success: function (data) {
                        var json = eval(‘(‘ + data + ‘)‘);
                        alert(json.Age);
                    }
                });
后台处理:
            HttpResponse res = context.Response;
            HttpRequest req = context.Request;
            string code = req["filename"];
            string jsonString = "{\"Age\":28,\"Name\":\"张三\"}";
            //string jsonString = "{‘Age‘:23,‘Name‘:‘abc‘}";
            if (code != null)
            {
                res.Write(jsonString);
                res.ContentType = "text/plain";
                res.End();
            }
在这种情况下,单引号分割和转移双引号分割,都可以。
 
 
 
 
 
2.请求json格式数据,jquery自动解析
前台:
                $.ajax({
                    type: "post",
                    url: "checkFile.ashx",
                    data: { "filename": "3" },
                   // contentType:"application/json",----------在ajax请求ashx文件的json数据时,此属性不能被指定,而在请求webservices时,是必须指定的。
                    dataType: "json",
                    success: function (data) {
                        alert(data.Name);
                    }
                });
 
后台处理:
            HttpResponse res = context.Response;
            HttpRequest req = context.Request;
            string code = req["filename"];
           string jsonString = "{\"Age\":28,\"Name\":\"张三\"}";
            if (code != null)
            {
                res.Write(jsonString);
                res.ContentType = "text/plain";
                res.End();
            }
在这种情况下,只有转移双引号分割,才可以在前台被jquery方法自动解析。
 
 
3.带序列化的text数据前台解析
前台:
                $.ajax({
                    type: "post",
                    url: "checkFile.ashx",
                    data: { "filename": "2" },
                    dataType: "text",
                    success: function (data) {
                        $("p").text(data);
                        var json = eval(‘(‘ + data + ‘)‘);
                        alert(json.Name);
                    }
                });
json数据内容:   {"Name":"zhangsan","Code":111,"Birthday":"\/Date(649666800000)\/"}
后台处理:
 
            HttpResponse res = context.Response;
            HttpRequest req = context.Request;
            string code = req["filename"];
            Student stu = new Student { 
            Name="zhangsan",
            Code=111,
            Birthday=Convert.ToDateTime("1990-8-3")
            };
            JavaScriptSerializer serializer=new JavaScriptSerializer();
            string jsonString = serializer.Serialize(stu);
json数据内容:  "{\"Name\":\"zhangsan\",\"Code\":111,\"Birthday\":\"\\/Date(649666800000)\\/\"}"
            if (code != null)
            {
                res.Write(jsonString);
                res.ContentType = "text/plain";
                res.End();
            }
    [Serializable]
    public class Student
    {
        public string Name { get; set; }
        public int Code { get; set; }
        public DateTime Birthday { get; set; }
    }

 

4.带序列化的json 前台自动解析:
前台:
                $.ajax({
                    type: "post",
                    url: "checkFile.ashx",
                    data: { "filename": "3" },
                    dataType: "json",--------------只要指定此处就可以,后台处理同上。
                    success: function (data) {
                        alert(data.Name);
                    }
                });

ajax、json一些整理(1)