zoukankan      html  css  js  c++  java
  • jquery实现ajax,返回json数据

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

    我经常用的是$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框架

  • 相关阅读:
    A1066 Root of AVL Tree (25 分)
    A1099 Build A Binary Search Tree (30 分)
    A1043 Is It a Binary Search Tree (25 分) ——PA, 24/25, 先记录思路
    A1079; A1090; A1004:一般树遍历
    A1053 Path of Equal Weight (30 分)
    A1086 Tree Traversals Again (25 分)
    A1020 Tree Traversals (25 分)
    A1091 Acute Stroke (30 分)
    A1103 Integer Factorization (30 分)
    A1032 Sharing (25 分)
  • 原文地址:https://www.cnblogs.com/lingyuan/p/1866542.html
Copyright © 2011-2022 走看看