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 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("<div class=\"reading\">");
contentlist.AppendLine("<h4><span>网友评论</span></h4>");
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 一致。
以上就是这个问题的解决办法 ,如有问题请留言