我在一般处理程序那边设置了如下的代码:
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string msg = context.Request["msg"];
new T_commentTableAdapter().Insert(context.Request.UserHostAddress,msg,DateTime.Now);
context.Response.Write("ok");
}
public bool IsReusable
{
get
{
return false;
}
}
}
然后我在网页注册一个按钮的事件:
<script src="../Scripts/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var txtcomment = $("#txtcomment").val();
$("#btnOK").click(function () {
$.post("Handler.ashx", { "msg": txtcomment }, function (data, textstatus) {
if (textstatus != "success") {
alert("发表失败,请重试");
return;
}
else {
if (data == "ok") {
alert("发表成功!");
}
else {
alert("评论发表有问题!");
}
}
});
});
});
</script>
error: function(msg) { alert(msg.responseText); }
加个error,肯定报错
程序内部错误 前端得不到响应 你调试一下 就知道了
调试了,没错,不会报错
你用游览器开发者工具,一查看就知道那边有错误,我估计是你的ajax请求没有发送出去。有可能就是那个url不对,如果你的主页面跟那个ashx不在同一级别的目录
我也知道是AJAX请求没有发送过去,关键是怎么解决?
@奋斗-js: 对于这个问题,你要写对正确的url。
@chenping2008: 肯定又写对url的
@奋斗-js: Handler 这个能不能换个名字啊,
先用IE开发者工具或者firefox的firebug插件到网络视图查看click时候你发送了什么数据到客户端,如果是服务端有问题,一般会有提示错误信息在网络视图里出现。
如果这里没有向服务端提交信息,请用开发者工具在下面这段代码处加断点,然后单步调试发现问题所在。
$.post("Handler.ashx", { "msg": txtcomment }, function (data, textstatus) {