почему функция 'error' в $ .ajax выполняется, даже если запрос на вызов веб-метода выполняется успешно? - PullRequest
0 голосов
/ 18 августа 2010

Я использую jquery ajax-метод для вызова веб-метода при нажатии на «span». Это веб-метод на одной из моих страниц 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);
              }
          });
       });
    });

когда я щелкаю промежуток, я вижу, как веб-метод вызывается (путем отладки), но даже до того, как веб-метод начинает выполняться, я получаю предупреждение «ошибка» и вижу (пустая строка) сообщение регистрируется в консоли firebug. Насколько я знаю, функция «error» выполняется только в случае сбоя ajax-запроса. Но я вижу, как выполняется веб-метод. Я не понимаю, почему функция error выполняется даже тогда.

Может кто-нибудь, пожалуйста, помогите мне с этим.

Спасибо

1 Ответ

1 голос
/ 18 августа 2010

Обработчик error выполняется, если скрипт на стороне сервера возвращает код ошибки, отличный от 200. Вы можете использовать FireBug для проверки того, что именно происходит под прикрытием.

...