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("
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://lswzjz.com/article/gdsjpo.html
用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("
");contentlist.AppendLine("
网友评论
");contentlist.AppendLine("
");
foreach (var item in list)
{
contentlist.AppendLine(string.Format("
}
contentlist.AppendLine("
foreach (var item in list)
{
contentlist.AppendLine(string.Format("
- ", item.CreateName));
{0}:{1}
", item.CreateName, item.Contents));
contentlist.AppendLine(string.Format("时间:{0}
", item.CreateAt.ToShortString("yyyy-MM-dd hh:mm")));
contentlist.AppendLine("
contentlist.AppendLine(string.Format("
}
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://lswzjz.com/article/gdsjpo.html