jquery实现ajax,返回json数据

发布于 2022-09-04 03:25:51 字数 5226 浏览 14 评论 1

jquery实现ajax,返回json数据

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

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

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

首先,页面引用jquery.js

在页面写ajax处理的js函数

  1. function initMeeting() {  
  2.              $.get("/Common/MeetingRoom.ashx", {meetid:<%=meetId %>},function sellerList(data){
  3.                  $("#divSellerList").html(data);
  4.              },"json");
  5.              setTimeout("initMeeting()",20000);
  6.          }
  7.          function initMeeting() {  
  8.              $.get("/Common/MeetingRoom.ashx", {meetid:<%=meetId %>},function sellerList(data){
  9.                  var obj = eval( "(" + data + ")" );//转换后的JSON对象
  10.                  $("#divSellerList").html(obj.CellerList);
  11.              },"html");
  12.              setTimeout("initMeeting()",20000);
  13.          }

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

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

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

就能获得json对象.

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

部分代码如下:

  1. public class MeetingRoom : IHttpHandler
  2. {
  3.      public void ProcessRequest(HttpContext context)
  4.      {
  5.          context.Response.ContentType = "text/plain";
  6.          try
  7.          {
  8.              int meetid = XYConvert.GetInt32(context.Request.QueryString["meetid"]);
  9.              string str = "";
  10.              MeetingJson meetingJson = new MeetingJson();
  11.              if (meetid != 0)
  12.              {
  13.                  meetingJson.CellerList=returnCellerList(meetid);                  
  14.              }
  15.              str = JsonConvert.SerializeObject(meetingJson);
  16.              context.Response.Write(str);
  17.          }
  18.          catch (Exception ex) {
  19.              context.Response.Write(ex.Message);
  20.          }
  21.      }
  22.      public class MeetingJson {
  23.          string cellerList;
  24.         public string CellerList
  25.          {
  26.              get { return cellerList; }
  27.              set { cellerList = value; }
  28.          }
  29.      }
  30.      protected string returnCellerList(int meetid)  
  31.     {
  32.            //省略..
  33.     }
  34. }

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

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

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

1 public class MeetingRoom : IHttpHandler, IRequiresSessionState  

2 {

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文