Ashx ハンドラー: オブジェクトを json 形式で返す必要がある場合は、MIME タイプを「application/json」に設定する必要があります。
HTML コード:
コードは次のとおりです:
<script type="text/javascript" src="/js/jquery-1.4.js"></script> <script type="text/javascript"> function jsonTest1() { $.ajax({ url:"Handler.ashx", data:{"type":"ajax"}, datatype:"json", type:"get", success:function(data) { document.getElementById('p1').innerHTML=data;//因为mime类型是文本 所以返回回来的是json格式的字符串 } }); } function jsonTest2() { $.getJSON( 'Handler.ashx', {'type': 'json','name':'qixuejia' }, //类型格式 function(data) { for(var i=0;i<data.length;i++) { alert(data[i]["UserId"]) } } ); } </script> <form id="form1" runat="server"> <p id="p1"> </p> <input type="button" value="jQuery.ajax()" onclick="jsonTest1()"/> <input type="button" value="jQuery.getJSON()" onclick="jsonTest2()"/> </form>
Ashx ハンドラー: オブジェクトを json 形式で返す必要がある場合は、MIME タイプを「application/json」に設定する必要があります。
jQuery ソース ファイルを見ると、getJSON が次のように実装されていることがわかります。
getJSON: function( url, data, callback ) {
return jQuery.get(url, data, callback, "json");
public void ProcessRequest(HttpContext context) { if (context.Request.Params["type"].Equals("ajax")) { context.Response.ContentType = "text/plain"; } else { context.Response.ContentType = "application/json"; } GetInfo(context); } public bool IsReusable { get { return false; } } public void GetInfo(HttpContext context) { System.Collections.Generic.List<UserInfo> listUser = UserInfoManage.GetUserInfoBySQL("Select Top 5 * From Userinfo"); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"; string ResJsonStr = JsonConvert.Serialize Object (listUser, timeConverter); context.Response.Write(ResJsonStr); }
以上がjQuery getJSON が json 内のデータ コードを処理する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。