jquery ajax,ashx,json的用法介绍

 本篇文章主要是对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(); 
                //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; 
            } 
        } 
    } 
}
 

时间: 2025-01-20 05:59:11

jquery ajax,ashx,json的用法介绍的相关文章

jquery ajax,ashx,json的用法总结_jquery

jquery提供的简化版的ajax调用方法通常如下: 复制代码 代码如下:     function post() {     $("#divWait").show();     $("#btnPost").attr("disabled", "disabled");     $.post("../PostIt.ashx",                     {                     

JQuery ajax返回JSON时的处理方式 (三种方式)_AJAX相关

最近在使用JQuery的ajax方法时,要求返回的数据为json数据,在处理的过程中遇到下面的几个问题,那就是采用不同的方式来生成json数据的时候,在$.ajax方法中应该是如何来处理的,下面依次来进行说明,由于本人使用的是asp.net,所以处理的页面都是采用.net来做的!其他的方式应该是相同的吧         一.JSON的一些基础知识. JSON中对象通过"{}"来标识,一个"{}"代表一个对象,如{"AreaId":"12

JQuery ajax 返回json时出现中文乱码该如何解决_AJAX相关

使用jQuery ajax调用的返回json,中文乱码问题 Js代码如下: $.ajax({ url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function(){ alert('获取数据失败!'); }, success: function(json){ jsObject = eval(json); } }); return j

jquery ajax 读取json数据存入表格中

问题描述 jquery ajax 读取json数据存入表格中 test.txt的json数据如下[{""XH"":1YWName"":""业务1""SName"":""系统1""QDName"":""渠道1""HJNumber"":5}{""XH&q

jQuery常见的选择器及用法介绍_jquery

选择器的意义就是将众多html代码中准确的找出我们想找的单元. 接下来将常见的选择器以及作用列举出来. 基本选择器 $('#test1').css('background' , 'gray'); 可以找到id = test1的单元. $('p').css('background' , 'blue'); 所有的P标签都会被选中. $('.test2').css('background' , 'green'); Class = test2的单元全部被选中. $('*').css('backgroun

jquery ajax 导入json数据进行修改操作

问题描述 jquery ajax 导入json数据进行修改操作 json数据 test.txt [ {"XH":1,"YWName":"业务1","SName":"系统1","QDName":"渠道1","HJNumber":5}, {"XH":2,"YWName":"业务2","

echarts+ajax+ashx+json调用数据库数据实现饼图和柱状图

实现方式:ajax+ashx+json 注意事项: 官网所需格式为   [{value:23,name:'xxxx' }]    请将key 的名字不要写错 具体代码,各位看官 请下移目光. <!--请先引用文件-->  <script src="../Scripts/jquery-1.8.2.min.js"></script>     <script src="../Scripts/echarts/echarts.min.js&qu

jquery ajax跨域解决方法介绍

 本篇文章只要是对jquery ajax跨域解决方法(json方式)进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 最近公司开发的项目中很多地方需要跨域ajax请求,比如几个子域名下  http://a.****.com/index123.aspx,  http://b.****.com/index2.aspx    都要请求用户json信息,然后再对数据进行处理,起初我和同事们试了很多种方法,使用$.ajax() 无论是get或post方法都会引起uri deny的错误.一番GG之后

jquery ajax返回json数据进行前后台交互实例

先我们看演示代码  代码如下 复制代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-