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 { } 在开发的时候,要接受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格式的数据。 JsonConvert.SerializeObject方法就可以转换了。返回json格式后,jquery就可以采用XXX.xxx的方式获取值了。 JsonConvert在处理datetime格式的时候,会返回类似1198908717056的绝对值,因此,在处理datetime的时候,要做一下转换。具体语句如下: IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); 此处顺便提一下,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 public void ProcessRequest(HttpContext context) }; //BLLContent bll = new BLLContent(); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); } public bool IsReusable (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |