jQuery getJSON 处理json数据的代码 解决ajax跨域返回json 数据问题

本人遇到的问题 :
    用getJSON 异步调用数据,返回json 数据集合,数据是反回了 但是 没有执行回调函数


正确后的代码:
js文件
//获取列表
function getlist() {
    var topID = $("#articleid").val();
    //var params = "topicID=" + topID;

    $.getJSON("http://news." + domian + "/AjaxList.ashx?topicID="+topID+"&format=json& jsoncallback=?", function (data) {
        $("#commentlist").html(data.contentlist);

    });
}

一般处理文件
<%@ WebHandler Language="C#" Class="AjaxList" %>

using System;
using System.Web;
using LitJson;
using UCenter.Logic.Members;
using WCms.Entity.Common;
using WCms.Logic.Common;
using Qyn.Studio.Extend;
using Qyn.Studio.Utils;
/// <summary>
/// 获取电子优惠卷
/// </summary>
public class AjaxList : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        context.Response.AddHeader("P3P", "CP=CAO PSA OUR");
       
        var data = new JsonData();
        var contentlist = new StringPlus();
        //var ID=UserLogic.GetCookies().ID;
        //var userinfo = UserLogic.Data.Where(t => t.ID == ID.GetValueOrDefault()).ToInfo();
        var jsoncallback = QynRequest.QS(" jsoncallback");
        var cTopicID = QynRequest.QS("topicID").ConvertType(0);

        if (cTopicID > 0)
        {
            var list = WCms.Logic.Common.CommentLogic.Data.Where(t => t.TopicID == cTopicID.ConvertType(0)).Selector(t => new { t.Contents, t.CreateAt, t.CreateName })
               .Desc(t => t.CreateAt).ToList(5);

            contentlist.AppendLine("<div class=\"reading\">");
            contentlist.AppendLine("<h3><span>网友评论</span></h3>");
            contentlist.AppendLine("<div class=\"Comment\">");
            foreach (var item in list)
            {
                contentlist.AppendLine(string.Format("<dl><dt><img src=\"/content/imges/small.jpg\" alt=\"{0}\"/></dt>", item.CreateName));
                contentlist.AppendLine(string.Format("<dd><p><i>{0}:</i>{1}</p>", item.CreateName, item.Contents));
                contentlist.AppendLine(string.Format("<p><span>时间:{0}</span></p>", item.CreateAt.ToShortString("yyyy-MM-dd hh:mm")));
                contentlist.AppendLine("</dd></dl>");
            }
            contentlist.AppendLine("</div></div>");
            data["contentlist"] = contentlist.Value;
        }
        context.Response.Write( jsoncallback + " (" + data.ToJson() + " )");
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}







划红线的部分是重点需要注意的事情

注:format=json  可以不加
    jsoncallback   也可以换成  callback
    不过一般处理文件里面 也必须要和 js文件里的 jsoncallback 或着 callback  一致。


以上就是这个问题的解决办法 ,如有问题请留言

你可能感兴趣的:(json数据格式,ajax跨域问题,ajax返回json数据,ajax回调函数未执行)