首页 > 解决方案 > 返回 4xx 错误时的角度 httpclient 帖子错误处理程序仅包含 OK,没有解析 json

问题描述

我在 .net core 2.1 中创建了一个 REST api,最初在 7 中创建了一个角度前端,但最近升级到了 8。

我有几个用于创建新项目(问题、答案、用户、应用程序等)的 post 端点,这些端点将采用 json 对象,然后针对它们运行一些验证规则。如果规则成功,则将对象保存到数据库中,如果失败,则返回模型状态错误和 422(也尝试过 400)错误以及 json 响应,例如 {"Address":["Please enter the address" ],"TopLevelBudgetId":["请选择顶级预算"]}

但是错误总是“OK”

.subscribe( () => { this.router.navigate([ /administration/users]); }, error => { console.log(error); }));

在邮递员中,我可以看到正确的状态代码 422 和 json modelstate,如上所示。

我不知道我哪里出错了,遵循了各种角度教程,但还没有找到解决方案。

我可以在 chrome 工具的网络选项卡中看到它首先发送选项并返回 204,这是因为我机器上本地的站点位于不同的端口上,因此它正在处理 CORS,然后它会正确显示 422 状态代码和响应。

为什么我在错误处理程序中只收到“OK”

标签: angularasp.net-coreerror-handling

解决方案


所以这是我的一个小学生错误。我有一个拦截器来处理 401/403 身份验证错误并重定向到登录页面。

这是有问题的部分,没有意识到我有这个拦截器,因为它是在开发开始时添加的

常量错误 = err.error.message || err.statusText; 返回抛出错误(错误);

更改为重新抛出异常

返回抛出错误(错误);


推荐阅读