ホームページ  >  記事  >  ウェブフロントエンド  >  jquery ajax、ashx、json_jqueryの使い方まとめ

jquery ajax、ashx、json_jqueryの使い方まとめ

WBOY
WBOYオリジナル
2016-05-16 17:00:421094ブラウズ

jquery が提供する ajax 呼び出しメソッドの簡易バージョンは、通常次のとおりです。

コードをコピー コードは次のとおりです。 :

function post() {
$("#divWait").show();
$("#btnPost").attr("無効", "無効" );
$.post("../PostIt.ashx",
関数 (データ) {
.indexof ('ok') & gt; -1) {
アラート (データ) ;
}
それ以外の場合 {



開発中、戻り値をjson形式で受け取る必要がある場合、上記の方法では動作しないようです。テキスト行のテキストを受け入れるようです。したがって、jQuery の基礎となる Ajax 実装メソッドが採用されます。

このメソッドには多くのパラメータもあります。詳細についてはヘルプドキュメントを参照してください。私の通常の使用法


コードをコピー


コードは次のとおりです:

function doPostAjax(){
$("#divWait").show();
$("#btnPost").attr("無効", "無効"); > $ .ajax({。データ:{msgcontent:$( "#msgcontent")。val()}、
タイムアウト:60000、
エラー:function(xmlhttprequest、textStatus、errorthrown){/// /リクエスト時に実行されるメソッド error
alert("error!" errorThrown); Success: function (data, txtSataus) {//リクエストが成功したときに実行されるメソッド ("#btnPost") .attr("disabled ", "");

});

context.Response.ContentType = "アプリケーション/json";

HTMLまたはテキストが返される場合は次のように記述できます

context.Response.ContentType = "text/plain";

ajaxメソッドで設定する戻り値がjsonの場合、ashxコードで返される形式はjson形式のデータでなければなりません。
オブジェクトを json 形式に変換するには、オープン ソースのサードパーティ クラス ライブラリ json.net、Newtonsoft.Json.dll を使用するのが一般的な方法です。
変換には JsonConvert.SerializeObject メソッドを使用できます。 json 形式を返した後、jquery は XXX.xxx を使用して値を取得できます。


JsonConvert は、日時形式を処理するときに 1198908717056 のような絶対値を返します。そのため、日時を処理する場合は、何らかの変換が必要です。具体的な文は次のとおりです。

IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
//ここでカスタム日付形式を使用します。使用しない場合、デフォルトは ISO8601 形式です 'HH':'mm':'ss"; 文字列出力 = JsonConvert.SerializeObject(m, Newtonsoft.Json.Formatting.Indented, timeConverter);

ところで、JavaScript は本来 json 形式のデータを処理する機能を備えており、json 形式のデータとの互換性が非常に高いです。

例:


コードをコピー

コードは次のとおりです。


function pppp( ) {
var person = { "名前": "ジャック", "年齢": 24, "性別": true };
このようなコードは直接記述することができ、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;
}
}
}
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。