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 一致。
以上就是這個問題的解決辦法 ,如有問題請留言