angularjs - 解析 Angular 2 中的错误主体

标签 angularjs angular

请问如何解析API返回给我的error body。

这是 API 返回的图像: enter image description here

这是我的代码:

login(username,password){
        let headers = new Headers();
        headers.append('Content-Type','application/json');

        return this.http.post(this.configEnvironment.url() + "oauth/access_token",
            JSON.stringify(
                {
                    username: username,
                    password: password,
                    grant_type: "password",
                    client_id: "xxxxxxx",
                    client_secret: "xxxxxxxx"
                }
            ),
            { headers }
        )
        .map(res => res.json())
        .catch((err:any) =>{
            console.log(err);
            return Observable.throw(new Error(err));
         });

     }

我可以使用这个访问 URL、状态、statusText 等:

err.status,err,url,error.statusText

我的问题是我无法获取错误正文的值。

最佳答案

您的catch 实际上收到了一个Response。您可以使用 json()

访问其详细信息
import { Response }  from "@angular/http";
...
.catch((err:Response) =>{
            let details = err.json().error;
            console.log(details);
            return Observable.throw(new Error(details));
         });

注意:这个答案是关于 @angular/http 库的。从 Angular 5 开始,这个库已被弃用,取而代之的是 @angular/common/http

关于angularjs - 解析 Angular 2 中的错误主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40067617/

相关文章:

angularjs - 根据大小响应的自定义磁贴

javascript - 如何将输入类型日期和输入类型时间合二为一

javascript - 从请求检索后,AngularJS 数据未显示在 View 中

javascript - 在 angularjs 中在父页面和弹出页面之间传递数据的最佳方法

javascript - 如何使用 AngularJS 在页面中附加多个扫描的条形码结果数据

Angular 自定义验证器错误(预期验证器返回 Promise 或 Observable)

angular - X 型是 2 个模块声明的一部分(Angular 2 RC5)

Angular Generator VSCode插件类似于Angular文档中的一种

javascript - Angular/Typescript 中的 <var> 语法是什么意思?

angular - 何时在 angular2 中使用 ngrx/effect