在Angular 2中解析错误体

时间:2016-10-16 06:39:21

标签: angularjs angular

我想问一下如何解析API返回给我的错误主体。

这是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,status,statusText等:

err.status,err,url,error.statusText

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

1 个答案:

答案 0 :(得分:12)

您的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