Javascript Web服务错误捕获(Jquery+asp.net Web服务)
我正在寻找一种可接受的解决方案,用于在以下场景中捕获错误: 我有一个与数据库交互的asp.net web服务。我通过jquery的$ajax功能与web服务交互 我想知道什么是公认的错误捕获的稳定方法。从web服务接收数据时,在我的场景中有两种类型的错误: 数据库错误 ajax错误 Ajax错误可能被困在$Ajax函数的错误部分中。我在web服务中捕获了数据库错误,到目前为止,我只能想出一个方法将它们传递给用户——将它们打包到结果数组中。但这个解决方案很尴尬。还有更好的主意吗 以下是我用于访问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
$.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服务中设置错误消息/错误状态,以便在错误块中显示?你有一段代码来演示它吗?谢谢