我想问一下如何解析API返回给我的错误主体。
这是我的代码:
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
我的问题是我无法获得错误正文的价值。
答案 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