Jquery ajax() 处理 WCF 错误?

标签 jquery wcf

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

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

error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert(XMLHttpRequest.responseText);
 }

我唯一返回的是一个 HTML 字符串(HTML 页面),其中隐藏着深深的错误;;

我想显示错误,例如

  1. 找不到服务(HTTP 400 和 500 错误)
  2. 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/

相关文章:

javascript - Jquery获取元素属性的值并查看它是否等于不同属性的值

c# - 在 ASP.NET MVC 中支持 WCF

c# - 使用 Javascript 进行 WCF 身份验证

javascript - 触发取消选中对复选框不起作用

javascript - 如何使用另一个 onclick 事件触发包装在一个事件中的代码

c# - 从不同的文件加载 wcf 主机配置

WCF 测试客户端显示 IMetadataExchange

asp.net-mvc - 表单例份验证、ASP.NET MVC 和 WCF RESTful 服务

javascript - 将图像映射与 ImageMapster jQuery 插件一起使用时,坐标会发生变化

javascript - 如何根据th更新td?