当前位置:  编程技术>WEB前端

jquery ajax,ashx,json的用法总结

    来源: 互联网  发布时间:2014-08-25

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

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
{
    ///
    /// PostIt 的摘要说明
    ///
    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;
            }
        }
    }
}


    
 
 

您可能感兴趣的文章:

  • JS与jquery自定义属性用法
  • jQuery setTimeout()函数的用法介绍
  • jQuery :visible 选择器(冒号)的用法
  • JQuery 判断某个属性是否存在hasAttr用法
  • jquery onpropertychange键盘事件用法举例
  • jQuery setTimeout用法总结(实例)
  • Jquery confirm弹出框的用法
  • jquery的focus函数用法示例
  • Jquery中slideToggle()与toggleClass()用法
  • Jquery 过滤器(first,last,not,even,odd)用法举例
  • jquery 字符串切割函数substring的用法说明
  • jquery判断浏览器类型($.browser用法)
  • jquery css类用法(添加、修改与删除css)
  • jquery中show()、hide()方法的用法
  • 有关jquery一些选择器的用法小结
  • Jquery中ajax方法data参数的用法小结
  • jquery中each的用法分享
  • jquery .attr()与.prop()用法解析
  • jquery插件jTimer jquery定时器的用法举例
  • jquery操作HTML5 的data-*的用法实例分享
  • jquery easyui开发几点总结
  • jquery为input赋值方法总结
  • jQuery 定时局部刷新(setInterval)方法总结
  • JQuery对表格进行操作的常用技巧总结
  • 在jquery中combobox多选的不兼容问题总结
  • jQuery学习总结之jQuery事件
  • jquery操作复选框(checkbox)的12个小技巧总结
  • jquery操作input值方法总结
  • Jquery获得控件值的三种方法总结
  • jQuery $.extend()用法总结
  • JQuery对表单元素的基本操作使用总结
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jQuery验证码插件 Ajax Fancy Capcha
  • jquery ajax提交无响应怎么办?解决方法
  • firefox下jquery ajax返回object XMLDocument处理方法
  • jQuery.ajax 用户登录验证的代码
  • AJAX-enabled Sticky Notes With PHP & jQuery
  • JQuery中使用ajax传输超大数据的解决方法
  • JQuery中使用Ajax赋值给全局变量失败异常的解决方法
  • Ajax框架 jQuery
  • jQuery Ajax($.ajax、$.post、$.get)实例代码
  • jQuery中的$.ajax()方法应用
  • jquery的ajax简单结构示例代码
  • 解析:为jquery的ajax传递url的方法与注意事项
  • jquery Ajax 实现加载数据前动画效果的示例代码
  • JQuery中使用Ajax赋值给全局变量异常的解决方法
  • jquery ajax 局部刷新小案例
  • jquery的ajax跨域请求原理和示例
  • jquery ajax跨域解决方法(json方式)
  • jquery教程ajax请求json数据示例
  • 浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
  • 浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
  • 通过javascript库JQuery实现页面跳转功能代码
  • jQuery鼠标动画插件 jquery-ahover
  • jQuery概述,代码举例及最新版下载
  • jQuery向导插件 Jquery Wizard Plugin
  • Jquery操作html复选框checkbox:全选,全不选和反选
  • jQuery圆角插件 jQuery Corners
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • jQuery相册插件 jQuery.popeye
  • jQuery UI组件 jQuery UI
  • jQuery右键菜单插件 jQuery ContextMenu
  • jQuery分页插件 Pagination jQuery Plugin


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3