成都网站建设设计

将想法与焦点和您一起共享

jQuerygetJSON处理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;
///
/// 获取电子优惠卷
///

public class AjaxList : IHttpHandler
{

    public void Proce***equest(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("
");
            contentlist.AppendLine("

网友评论

");
            contentlist.AppendLine("
");
            foreach (var item in list)
            {
                contentlist.AppendLine(string.Format("
\"{0}\"/
", item.CreateName));
                contentlist.AppendLine(string.Format("

{0}:{1}

", item.CreateName, item.Contents));
                contentlist.AppendLine(string.Format("

时间:{0}

", item.CreateAt.ToShortString("yyyy-MM-dd hh:mm")));
                contentlist.AppendLine("
");
            }
            contentlist.AppendLine("
");
            data["contentlist"] = contentlist.Value;
        }
        context.Response.Write(jsoncallback + "(" + data.ToJson() + ")");
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}







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

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


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

分享标题:jQuerygetJSON处理json数据的代码解决ajax跨域返回json数据问题
标题网址:http://chengdu.cdxwcx.cn/article/gdsjpo.html