我正在尝试将一些数据发送到通用处理程序,并使用jQuery.ajax()将该信息传回响应中。出于某种原因,当我根据我发现的另一个问题(.NET Simple Form Submit via AJAX and JQUERY)的答案向上发送数据时,context.Request对象中没有任何内容。
这是我的ajax电话:
function retrieveStats(monster) {
$.ajax({
type: "POST",
url: "MonsterRequests.ashx",
data: { "monster": monster },
contentType: "application/json; charset=utf-8",
success: function (msg) {
alert(msg.d);
},
error: function (jqXhr, status, errorThrown) {
alert(errorThrown);
}
});
}
这是我的处理程序的代码:
public class MonsterRequests : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string monsterName = context.Request["monster"];
context.Response.ContentType = "text/plain";
context.Response.Write("{\"d\":\"" + monsterName + "\"}");
}
public bool IsReusable {
get {
return false;
}
}
}
我可以通过访问context.Request.InputStream并通过StreamReader读取信息,但我很好奇为什么我不能直接从请求中提取信息。
对此的任何帮助将不胜感激。
答案 0 :(得分:2)
删除内容类型,因为您没有发送json。试试这个。
var monster = "value";
$.ajax({
type: "POST",
url: "MyHandler.ashx",
data: { monster: monster },
success: function(msg) {
alert(msg.d);
},
error: function(jqXhr, status, errorThrown) {
alert(errorThrown);
}
});