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框架

  • 相关阅读:
    一步一步教你elasticsearch在windows下的安装
    Query DSL for elasticsearch Query
    [转] webpack之前端性能优化(史上最全,不断更新中。。。)
    [转] Javascript模块化编程(一):模块的写法
    [转] 2016 JavaScript 发展现状大调查
    [转] 前端性能的几个基础指标
    [转] 视频直播前端方案
    [转] Web前端开发工程师常用技术网站整理
    [转] getBoundingClientRect判断元素是否可见
    [转] js前端解决跨域问题的8种方案(最新最全)
  • 原文地址:https://www.cnblogs.com/lingyuan/p/1866542.html
Copyright © 2011-2022 走看看