jquery实现ajax,返回json数据

jquery实现ajax可以调用几种方法

jquery实现ajax,返回json数据

我经常用的是$get(url,data,callback,type)方法

其中url是异步请求的页面(可以是.ashx文件),data是参数,callback是回调函数,而type是返回数据的类型.type有xml,html,json,text等.

首先,页面引用jquery.js

在页面写ajax处理的js函数

 

function initMeeting() { 

            $.get("/Common/MeetingRoom.ashx", {meetid:<%=meetId %>},function sellerList(data){

                $("#divSellerList").html(data);

            },"json");

            setTimeout("initMeeting()",20000);

        }

        function initMeeting() { 

            $.get("/Common/MeetingRoom.ashx", {meetid:<%=meetId %>},function sellerList(data){

                var obj = eval( "(" + data + ")" );//转换后的JSON对象

                $("#divSellerList").html(obj.CellerList);

            },"html");

            setTimeout("initMeeting()",20000);

        }

我用的返回类型是json,这样可以返回类似类的数据类型.比如{"Name":"Sunny D.D", "Age":25}

但是在使用返回值data时,首先要转换json,通过

 

var obj = eval( "(" + data + ")" );//转换后的JSON对象

就能获得json对象.

 

json对象是在MeetingRoom.ashx文件里处理生成的

 

部分代码如下:

 

    public class MeetingRoom : IHttpHandler

    {



        public void ProcessRequest(HttpContext context)

        {

            context.Response.ContentType = "text/plain";

            try

            {

                int meetid = XYConvert.GetInt32(context.Request.QueryString["meetid"]);



                string str = "";



                MeetingJson meetingJson = new MeetingJson();



                if (meetid != 0)

                {

                    meetingJson.CellerList=returnCellerList(meetid);

                    

                }

                str = JsonConvert.SerializeObject(meetingJson);

                context.Response.Write(str);

            }

            catch (Exception ex) {

                context.Response.Write(ex.Message);

            }

        }

        public class MeetingJson {

            string cellerList;



            public string CellerList

            {

                get { return cellerList; }

                set { cellerList = value; }

            }

        }

        protected string returnCellerList(int meetid) 

       {

              //省略..

       }

    }

返回json数据格式最重要的是使用了JsonConvert.SerializeObject()方法.它可以将需要传递到客户端的数据打包,并序列化为字符串

而类JsonConvert在第三方dll文件中(Newtonsoft.Json.dll),引入dll就可以使用了.

 

注意:在.ashx页面中,想要使用Session的话,直接写context.Session["user"]是不行的,必须指定当前上下文可以使用Session,可已实现IRequiresSessionState接口,访问Session

 

    public class MeetingRoom : IHttpHandler, IRequiresSessionState 

    {

 

在中小项目中,使用这种方式实现ajax,如果是大项目里,应该有封装更好的ajax框架

 

 

 

 

 

你可能感兴趣的:(jquery)