如何在 Jquery ajax()
方法中处理 WCF 服务程序 (RESTful) 返回的错误/异常?
假设我打开了 includeExceptionDetailInFaults="true"
并且使用了
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.responseText);
}
我唯一返回的是一个 HTML 字符串(HTML 页面),其中隐藏着深深的错误;;
我想显示错误,例如
- 找不到服务(HTTP 400 和 500 错误)
- WCF 向 .net 抛出的异常 客户端页面(javascript)
我怎样才能做到这一点?
最佳答案
includeExceptionDetailsInFaults
它更像是一种针对未处理异常的调试工具,而不是一种实际将错误传递给客户端的方法。此类错误通常是 500 个内部服务器错误,其详细信息不应以任何方式泄露给客户端。对于 REST 服务,默认情况下将这些详细信息传递给调用者的一般方法是以文本/HTML 形式返回它们。
但是,如果您尝试从服务中返回逻辑错误,您应该想出 WebFaultException<T>
的实例。其中 T 可以是一个简单的字符串消息,或者,如果您想要更复杂的内容,也可以是一个类,该类将根据为服务端点配置的任何序列化来序列化为结构化格式。您还可以在构建 WebFaultException<T>
期间设置响应状态代码.
如果您希望对所有未处理的异常进行通用处理以返回结构化内容类型表示形式和状态代码,您需要编写自己的 IErrorHandler
并将 unhanded 异常类型转换为 WebFaultException<T>
在你的ProvideFault
执行。
关于Jquery ajax() 处理 WCF 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5979486/