Jquery ajax()处理WCF错误?

Csh*_*hah 5 wcf jquery

如何在Jquery ajax()方法中处理WCF服务器(REsTful)返回的错误/异常?

假设我已经includeExceptionDetailInFaults="true"打开并使用了

error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert(XMLHttpRequest.responseText);
 }
Run Code Online (Sandbox Code Playgroud)

我回过头来的只是一个HTML字符串(HTML页面),里面埋藏着错误;

我想显示错误

  1. 找不到服务(HTTP 400和500错误)
  2. WCF抛出的.net异常到客户端页面(javascript)

我怎样才能做到这一点?

Dre*_*rsh 4

includeExceptionDetailsInFaults它更像是一种针对未处理异常的调试工具,而不是一种实际将错误传递给客户端的方法。此类错误通常是 500 个内部服务器错误,其详细信息不应以任何方式泄露给客户端。对于 REST 服务,默认情况下将这些详细信息传递给调用者的一般方法是以文本/HTML 形式返回它们。

但是,如果您尝试从服务中返回逻辑错误,您应该想出WebFaultException<T>其中 T 可以是一个简单的字符串消息的实例,或者,如果您想要更复杂的东西,可以是一个将被序列化为结构化格式的类根据为您的服务端点配置的任何序列化。您还可以在构建期间设置响应状态代码WebFaultException<T>

如果您希望对所有未处理的异常进行通用处理以返回结构化内容类型表示形式和状态代码,您需要编写自己的IErrorHandler异常类型并将其转换为实现WebFaultException<T>中的a ProvideFault