您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

jquery ajax,ashx,json的用法介绍

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 本篇文章主要是对jquery ajax,ashx,json的用法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助

jquery提供的简化版的ajax调用方法通常如下:    代码如下:     function post() {      $("#divWait").show();      $("#btnPost").attr("disabled", "disabled");      $.post("../PostIt.ashx",                      {                          msgContent: $("#msgContent").val()                      },                      function (data) {                          if (data.indexOf('OK') > -1) {                              alert(data);                          }                          else {                               }                          $("#divWait").hide();                          $("#btnPost").attr("disabled", "");                      });  }     在开发的时候,要接受json格式的返回值时,上面的方法貌似不能行,上面的方法貌似接受的是text的文本行。因此,采用jQuery的底层Ajax实现方法。   该方法参数也很多,具体可看帮助文档。本人的常规用法    代码如下:     function doPostAjax(){              $("#divWait").show();              $("#btnPost").attr("disabled", "disabled");              $.ajax({                  url: '../PostIt.ashx',                  type: 'POST',                  dataType: 'json',                  data: { msgContent: $("#msgContent").val() },                  timeout: 60000,                  error: function (XMLHttpRequest, textStatus, errorThrown) {//请求错误 时执行的方法                      alert("error!" + errorThrown);                      $("#divWait").hide();                      $("#btnPost").attr("disabled", "");                  },                  success: function (data, txtSataus) {//请求成功时执行的方法                      showContent(data.content, data.createdate);                      $("#divWait").hide();                      $("#btnPost").attr("disabled", "");                  }                   });          }     在ashx代码段,要设置好返回的格式。   context.Response.ContentType = "application/json";   如果是返回的html或者text的话可以如下写法   context.Response.ContentType = "text/plain";   如果ajax方法中设置的返回值是json时,ashx代码返回的格式必须是json格式的数据。 把一个对象转换成json格式,常用方法就是采用开源的第三方类库json.net,Newtonsoft.Json.dll.   JsonConvert.SerializeObject方法就可以转换了。返回json格式后,jquery就可以采用XXX.xxx的方式获取值了。   JsonConvert在处理datetime格式的时候,会返回类似1198908717056的绝对值,因此,在处理datetime的时候,要做一下转换。具体语句如下:   IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();            //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式             timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss";  string output = JsonConvert.SerializeObject(m, Newtonsoft.Json.Formatting.Indented, timeConverter);   此处顺便提一下,javascript对json格式的数据有着天生的处理能力,非常好的兼容json格式数据。   举个例子:    代码如下:     function pppp() {             var person = { "name": "jack", "age": 24,"sex": true };             alert(person.name);             alert(person.age);             alert(person.sex);             }   这样的代码可以直接写出来,在vs2010的代码编辑器中还可以有代码提示。很强大。   ashx完整代码如下:   代码如下: using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Threading;  using Newtonsoft.Json;  using Newtonsoft.Json.Converters;       namespace nnn {      /// <summary>      /// PostIt 的摘要说明      /// </summary>      public class PostIt : IHttpHandler      {               public void ProcessRequest(HttpContext context)          {              context.Response.ContentType = "application/json";              try              {                  string msgContent = context.Request["msgContent"] ?? "";                  ModelContent m = new ModelContent()                  {                      author = "",                      categoryid = -1,                      title = "",                      content = msgContent,                      datetime = DateTime.Now,                      key = "",                      createdate = DateTime.Now,                      lastmodifydate = DateTime.Now,                      ip = context.Request.UserHostAddress                       };                       //BLLContent bll = new BLLContent();                &