源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

jquery ajax,ashx,json的用法总结

  • 时间:2020-12-15 09:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:jquery ajax,ashx,json的用法总结
jquery提供的简化版的ajax调用方法通常如下:
[u]复制代码[/u] 代码如下:
    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实现方法。 该方法参数也很多,具体可看帮助文档。本人的常规用法
[u]复制代码[/u] 代码如下:
    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格式数据。 举个例子:
[u]复制代码[/u] 代码如下:
    function pppp() {            var person = { "name": "jack", "age": 24,"sex": true };            alert(person.name);            alert(person.age);            alert(person.sex);            }
这样的代码可以直接写出来,在vs2010的代码编辑器中还可以有代码提示。很强大。 ashx完整代码如下:
[u]复制代码[/u] 代码如下:
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();                 //bll.Add(m);                     IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();                          //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式                           timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss";                 string output = JsonConvert.SerializeObject(m, Newtonsoft.Json.Formatting.Indented, timeConverter);                 context.Response.Write(output);             }             catch (Exception ex)             {                 context.Response.Write(ex.Message);             }             }             public bool IsReusable         {             get             {                 return false;             }         }     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部