所以我正在努力获取一些数据与AJAX。所有似乎工作好,但我实际上没有得到我的页面上的数据:通过HttpHandler获取数据与AJAX
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
function getMailDetail(mailId) {
$.ajax({
type: "GET",
url: "GetMail.ashx",
data: "mid=" + mailId,
success: function (data) {
console.log(data);
var pnlMail = $('#<%= pnlMail.ClientID %>');
var lblFrom = $('#<%= lblFrom.ClientID %>');
var lblDate = $('#<%= lblDate.ClientID %>');
var lblSubject = $('#<%= lblSubject.ClientID %>');
var lblMessage = $('#<%= lblMessage.ClientID %>');
lblFrom.text(data.From);
lblDate.text(data.Date);
lblSubject.text(data.Subject);
lblMessage.text(data.Message);
pnlMail.css("display", "block");
}
});
}
</script>
我登录data
检查它的价值。由于这是我的第一次尝试,我不确定会发生什么,但是,我相信我应该取回名称:值对。目前控制台没有任何记录。没有任何价值。
这里是我的HttpHandler:
public void ProcessRequest(HttpContext context)
{
string mailid = context.Request.QueryString["mid"].ToString();
context.Response.ContentType = "text/json";
context.Response.Write(showMailDetail(mailid));
}
protected string showMailDetail(string id)
{
int mailid = int.Parse(id);
string From = "";
DateTime Date = DateTime.Now;
string Subject = "";
string Message = "";
MySqlContext db = new MySqlContext();
string sql = "select m.datesent, m.subject, m.message, u.firstname, u.lastname from mail m inner join users u on m.sender = u.userid where m.mailid = @id";
List<MySqlParameter> args = new List<MySqlParameter>();
args.Add(new MySqlParameter() { ParameterName = "@id", MySqlDbType = MySqlDbType.Int32, Value = mailid });
MySqlDataReader dr = db.getReader(sql, args);
if (dr.HasRows)
{
dr.Read();
From = (string)dr["firstname"] + " " + (string)dr["lastname"];
Date = dr.GetDateTime("datesent");
Subject = (string)dr["subject"];
Message = (string)dr["message"];
}
dr.Close();
string result = "{ 'From' : " + From + ", 'Date' : " + Date.ToString("yyyy/MM/dd HH:mm:ss") + ", 'Subject' : " + Subject + ", 'Message' : " + Message + " }";
return result;
}
谁能帮我弄清楚,为什么我没有在这里得到什么?我为我这样做是错误的可能性完全做好了准备......
我写的基础上,文章的代码在 http://www.codeproject.com/Articles/170882/jQuery-AJAX-and-HttpHandlers-in-ASP-NET
编辑
发现我是用不正确的列在我的SQL名称 - 应该是m.sender
不是m.senderid
...但是,我现在有另一个问题。
当我触发处理程序,我得到了Chrome的控制台以下:
GET GetMail.ashx中旬= 1 500(内部服务器错误)jquery.min.js:2
EDIT 2
代码更正失误较多的处理程序和现在有任何地方出现没有错误,但它并不像点击实际上是触发任何东西......
不知道如何在这里继续......
你有没有试着调试处理程序的代码? –
hmmm是的,我做了并修复了我发现的问题...现在它正在运行代码正常,但没有发生任何事情 – Ortund
您错过了结果值中的曲线括号。 JSON格式为“{'property':value}” –