【问题标题】:Using Observable.ajax.post is it possible to catch the 'correct/custom' error?使用 Observable.ajax.post 是否可以捕获“正确/自定义”错误?
【发布时间】:2017-03-17 23:16:06
【问题描述】:

当我使用Observable.ajax.post 并收到错误时,它会返回一个“通用”AjaxError

在我的 Web 服务中,我返回一个自定义 json 对象,其中包含错误以及 BadRequest (400) 响应。如果我在 SwaggerUI 中测试服务,我会得到“正确”的错误消息/对象。

Observable.ajax 是否有限制只返回“通用”AjaxError

关于上下文的更多信息,我正在使用 React、Redux、Redux-Observable(使用 RxJs)、TypeScript、Webpack 开发 SPA,并且该服务是使用 Swagger (Swashbuckle) 的 Asp.Net Core WebApi .

谢谢, 阿德里安。

【问题讨论】:

    标签: javascript rxjs redux-observable


    【解决方案1】:

    在 AjaxError 中有一个 XMLHttpRequest 类型的 xhr 对象,您可以使用 xhr 对象的响应字段(例如 error.xhr.response)来处理错误响应。

    【讨论】:

    • 服务返回的自定义错误json/object不在xhr.response中。我没有在整个回复中找到我的错误消息。
    • 我建议您检查 chrome 开发者控制台中的响应选项卡中的请求,它可能会提供更多问题的内部信息。
    • 我收到的唯一消息是{"":["The input was not valid."]}。这显然不是我的自定义错误消息,甚至不接近 SwaggerUI 返回的错误。
    • 这是我的错误的样子:{ "PhoneNumber": [ "The PhoneNumber field is not a valid phone number." ] }
    • 这绝对有效,jsbin.com/goheka/edit?js,output“输入无效”不是来自 RxJS,所以它必须来自你的代码或服务器的响应。
    猜你喜欢
    • 2011-06-18
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多