Web服务错误捕获(Jquery + asp.net Web服务)

sar*_*ake 2 error-handling jquery json web-services

我正在寻找一个可接受的解决方案来捕获以下场景中的错误:我有一个与数据库交互的asp.net Web服务.我通过jquery的$ ajax函数与Web服务进行交互.

我想知道错误捕获的可接受的稳定方法是什么.从Web服务接收数据时,我的方案中存在两种类型的错误:

  • db错误
  • ajax错误

Ajax错误可能陷入$ ajax函数的错误部分.我将数据库错误捕获到Web服务中,到目前为止,我只想出一个如何将它们传递给用户的想法 - 将它们打包到结果数组中.但这个解决方案很尴尬.还有更好的想法吗?

以下是我用于访问asp.net Web服务的代码示例:

$.ajax({
    type: "POST",

    url: "http://localhost/WebServices/Service.asmx/GetBillingEntities",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(response) {
        var results = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

       DisplayResults();


    },

    error: function(xhr, status, error) {
        // Display a generic error for now.
        alert("AJAX Error!");
    }

});
Run Code Online (Sandbox Code Playgroud)

那么数据库结果是否应该进入结果数组并手动解压缩?有更好的系统吗?谢谢!

sar*_*ake 5

得到它了:

$(document).ready(function() {
02      $.ajax({
03          type: "GET",
04          url: "AJAX/DivideByZero",
05          dataType: "json",
06          success: function(data) {
07              if (data) {
08                  alert("Success!!!");
09              }
10          }, error: function(xhr, status, error) {
11              DisplayError(xhr);
12          }
13      });
14  });
15   
16  function DisplayError(xhr) {
17      var msg = JSON.parse(xhr.responseText);
18      alert(msg.Message);
19  }
Run Code Online (Sandbox Code Playgroud)