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

jquery-ajax-c#成功函数已执行,但没有响应

为了了解问题所在。

  1. 调试webDelete()以查看id实际上是"abc"!解析表单数据时可能会出现问题。。。

  2. 使用FireBugChrome 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版本问题引起的