为什么即使调用webmethod的请求成功,$ .ajax的'error'函数也会执行?

时间:2010-08-18 14:14:16

标签: asp.net jquery ajax webmethod

我使用jquery ajax方法在单击'span'时调用web方法。这是webmethod在我的一个aspx页面中,我使用以下代码从母版页调用它。

 $(document).ready(function(){
     $("#btn").click(function() {
        $.ajax({   
              type: "POST", 
              url: "Default.aspx/removedata",
              data:"{}",
              contentType: "application/json; charset=utf-8",
              dataType: "json",  
              success:function(msg) {  
                   $("li#search").removeClass('current');
                   $("li#search").addClass('hide');
                   $("#tabnew").addClass('hide');
                   window.location="Result.aspx";       
              },
              error:function(xhr, status, error) {
                  alert("error");                       
                  //var err = eval("(" + xhr.responseText + ")");
                  // Display the specific error raised by the server 
                  //alert(err.Message);
                  console.log(xhr.statusText);
              }
          });
       });
    });

当我点击跨度时,我可以看到调用webmethod(通过调试),但即使在webmethod开始执行之前,我也会收到警告“错误”,并且我看到 (空字符串) 消息被记录到firebug控制台中。 据我所知,只有当ajax请求失败时才会执行'error'函数。但是我可以看到webmethod被执行了。我不明白为什么错误函数正在执行。

有人可以帮我解决这个问题。

由于

1 个答案:

答案 0 :(得分:1)

如果服务器端脚本返回的错误代码不是200,则执行error处理程序。您可以使用FireBug来检查封面下究竟发生了什么。