Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Web服务错误捕获(Jquery+asp.net Web服务)_Javascript_Jquery_Json_Web Services_Error Handling - Fatal编程技术网

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

Javascript Web服务错误捕获(Jquery+asp.net Web服务),javascript,jquery,json,web-services,error-handling,Javascript,Jquery,Json,Web Services,Error Handling,我正在寻找一种可接受的解决方案,用于在以下场景中捕获错误: 我有一个与数据库交互的asp.net web服务。我通过jquery的$ajax功能与web服务交互 我想知道什么是公认的错误捕获的稳定方法。从web服务接收数据时,在我的场景中有两种类型的错误: 数据库错误 ajax错误 Ajax错误可能被困在$Ajax函数的错误部分中。我在web服务中捕获了数据库错误,到目前为止,我只能想出一个方法将它们传递给用户——将它们打包到结果数组中。但这个解决方案很尴尬。还有更好的主意吗 以下是我用于访问a

我正在寻找一种可接受的解决方案,用于在以下场景中捕获错误: 我有一个与数据库交互的asp.net web服务。我通过jquery的$ajax功能与web服务交互

我想知道什么是公认的错误捕获的稳定方法。从web服务接收数据时,在我的场景中有两种类型的错误:

数据库错误 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!");
  }
});
那么,数据库结果是否应该进入结果数组并在那里手动解压缩?有更好的系统吗?
谢谢

您可以做的是在Web服务的GetBillingEntities方法中抛出一个异常。捕获异常,记录一些详细信息,然后重新抛出它。如果您的方法抛出异常,它将被错误:块捕获

因此,基本上您需要处理服务中的错误数据,并处理如何在error:block中向用户显示错误。

明白了:

$(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  }

但在这一点上,我如何区分数据库错误和ajax错误呢?有没有办法在web服务中设置错误消息/错误状态,以便在错误块中显示?你有一段代码来演示它吗?谢谢