jquery-ajax-c#成功函数已执行,但没有响应
本文关键字:响应 执行 成功 函数 jquery-ajax-c# | 更新日期: 2023-09-27 18:22:26
帖子被解雇了,我可以在firebug 中看到以下内容
POST http://localhost:1148/WebSite2/frmMain.aspx/webDelete 200 OK 15ms
jQuery代码为:
$.ajax({
url: "frmMain.aspx/webDelete",
type: "POST",
dataType: "text",
contentType:"text/plain",
data: {id:"abc"},
success: function(data){alert("success");alert(data)},
error: function(){alert("failed");}
});
然后,成功功能中的两个警报被触发,但第二个警报为空
服务器端编码:
[WebMethod][ScriptMethod]
public static string webDelete(string id)
{
HttpContext context = HttpContext.Current;
context.Response.ContentType = "text/plain";
return id;
}
目前在没有param参与的情况下尝试,错误函数被触发,没有成功的
jquery代码
$.ajax({
url: "frmMain.aspx/webDelete",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: "{}",
async: true,
success: function(data){alert("success");alert(data.d) },
error: function(){alert("failed"); }
} );
服务器代码
[WebMethod][ScriptMethod]
public static string webDelete()
{
return "hello";
}
firebug信息:
响应标头
Cache-Control private
Connection Close
Content-Length 11732
Content-Type text/html; charset=utf-8
Date Thu, 18 Jul 2013 09:47:34 GMT
Server ASP.NET Development Server/8.0.0.0
X-AspNet-Version 2.0.50727
请求标头
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Content-Length 2
Content-Type application/json; charset=utf-8
Host localhost:1148
Referer http://localhost:1148/WebSite2/frmMain.aspx
User-Agent Mozilla/5.0 (Windows NT 5.2; rv:22.0) Gecko/20100101 Firefox/22.0
X-Requested-With XMLHttpRequest
为了了解问题所在。
-
调试
webDelete()
以查看id实际上是"abc"!解析表单数据时可能会出现问题。。。 -
使用FireBug或Chrome F12检查实际响应
尝试导航到:
http://localhost:1148/WebSite2/frmMain.aspx/webDelete?id=myNeetID
- 这会启动WebMethod吗
- 这是返回myNeetID还是空白
注意:您可能需要启用GET方法。
如果组合使用[WebMethod][ScriptMethod],则需要对ajax调用进行一些更改。
$.ajax({
url: "frmMain.aspx/webDelete",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({id:"abc"}),
success: function(data){alert("success");alert(data.d)},
error: function(){alert("failed");}
});
参见:
http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
感谢大家的帮助^_^
通过这篇精彩的帖子找到了答案!
带有asp.net的jquery ajax不工作
注意:此问题是由.NET版本问题引起的