【发布时间】:2019-07-09 16:44:07
【问题描述】:
我在 .net core 2.1 中创建了一个 REST api,最初在 7 中创建了一个角前端,但最近升级到了 8。
我有几个 post 端点用于创建新项目(问题、答案、用户、应用程序等),这些端点将采用 json 对象,然后针对它们运行一些验证规则。如果规则成功,则将对象保存到数据库中,如果失败,则返回模型状态错误和 422(也尝试过 400)错误以及 json 响应,例如 {"Address":["请输入地址"],"TopLevelBudgetId":["请选择顶级预算"]}
但是错误总是“OK”
.订阅(
() => {
this.router.navigate([/administration/users]);
},
错误 => {
控制台日志(错误);
}));
在邮递员中我可以看到正确的状态码 422 和如上所示的 json 模型状态。
我不知道我哪里出错了,遵循了各种角度教程,但还没有找到解决方案。
我可以在 chrome 工具的网络选项卡中看到它首先发送选项并返回 204,这是因为我机器上本地的站点位于不同的端口上,因此它正在处理 CORS,然后它会正确显示帖子422 状态码和响应。
为什么我在错误处理程序中只收到“OK”
【问题讨论】:
-
欢迎来到 Stack Overflow!你认为这与 Angular 8 相关吗?
-
我不这么认为,这就是我从 7 升级到 8 的原因,因为有完全相同的问题
-
我想知道这是否与选项请求有关,因为它确实返回 204,我猜这是 OK 的原因。我原以为 HttpClient 会处理这个问题,然后解析实际的帖子。我需要自己处理吗?
-
与我们分享您返回此 json 的代码。试试
console.log(JSON.stringify(error.response.data)); -
嗨,涛,当我尝试记录 error.response.data 时,我得到 ERROR TypeError: Cannot read property 'data' of undefined 错误只是“OK”而已。这包含在订阅的第二个 lambda 中,如原始帖子中所示
标签: angular asp.net-core error-handling