首頁  >  文章  >  web前端  >  jquery ajax,ashx,json的用法總結_jquery

jquery ajax,ashx,json的用法總結_jquery

WBOY
WBOY原創
2016-05-16 17:00:421095瀏覽

jquery提供的簡化版的ajax呼叫方法通常如下:

複製程式碼 程式碼如下:


程式碼如下:



程式碼如下:



程式碼如下:

程式碼如下:    function post() {
    $("#divWait").show();
    $("#btnPost").attr("disabled", "disabled");                     {
     ent").val()

                    },
                        if (data .indexOf('OK') > -1) {                                 }

                        else {

                            }     .hide();                         $("#btnPost").   }); } 在開發的時候,要接受json格式的回傳值時,上面的方法貌似不能行,上面的方法貌似接受的是text的文字行。因此,採用jQuery的底層Ajax實作方法。
此方法參數也很多,具體可看幫助文件。本人的常規用法複製程式碼 程式碼如下:

    function doPostAjax(){
            $("#divWait").show disabled");
            $.ajax({
               ,   
                dataType: 'json',
             msgContent").val() },
                timeout: 60000,
     {//要求錯誤時執行的方法
                    alert("error!" errorThrown);
                    $("#divWait").hide();
     , "");
                },
             txtSataus) {//請求成功時執行的方法
                    showContent(data.content, data.created  #divWait").hide();
                    $("#btnPost") .attr("disabled", "");
                }

                });
        }


在ashx   }


在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();          
//這裡使用自訂日期'-'MM'-'dd' 'HH':'mm':'ss";
string output = JsonConvert.SerializeObject(m, Newtonsoft.Json.Formatting.Indented, timeConverter);

這裡順便提一下,javascript對json格式的資料有著天生的處理能力,非常好的相容json格式資料。

舉個例子:


複製程式碼 程式碼如下:
 p.
           var person = { "name": "jack", "age": 24,"sex": true };
      .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
        {
                      return 稱為;
            }
        }
    }
}

    }
}

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn