我一直在寻找一种方法将我的asp.net应用程序的Web服务中的异常消息传递给ajax错误回调函数.
我所能找到的只是捕获从Web服务抛出到C#代码中的异常,但我从ajax代码而不是C#代码调用我的服务.我想要的不仅仅是返回的HTTP状态代码.
这是我的服务代码的catch块:
catch (Exception ex)
{
var fault = new GenericFault { Message = ex.Message, Operation = "" };
throw new FaultException<GenericFault>(fault);
}
}
这是我的ajax错误回调:
error: function (err) {
alert("The server encountered an error, please resubmit your request. If the problem persists, contact your administrator.");
return 'error occured';
}
我已经尝试过抛出Web故障异常,但这也没有达到目的,因为只有HTTP状态代码被传递.
解决方法:
找到答案.诀窍在于抛出正确的异常.
由于回调错误函数中捕获的错误会在xhr对象中看到详细信息.
所以你需要抛出HttpException传递它的状态代码和字符串消息.
catch块应该看起来像:
catch (Exception ex)
{
throw new HttpException(500, ex.Message);
}
然后你的ajax回调将获得你从这里传递的ex.message:
error: function (err) {
alert("The Detailed server error is "+err.responseJSON.Message);
return 'error occured';
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。