gpt4 book ai didi

angular - 解析从 HTTP catch 返回的错误 - Angular 2

转载 作者:太空狗 更新时间:2023-10-29 17:18:57 25 4
gpt4 key购买 nike

我已经实现了通过 HTTP 请求中的 catch 获取 API 错误返回值。我现在的问题是,当我调用服务时,如何在我的组件中获取 HTTP catch 的返回值。

这是我在 HTTP 服务中的代码:

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: "xxxx",
client_secret: "xxxxx"
}
),
{ headers }
)
.map(res => res.json())
.catch((err:Response) => {
let details = err.json();
return Observable.throw(new Error(details));
});

}

这是我在 login.component 中的代码:

this.loginService.login(this.model.username,this.model.password)
.subscribe(
data => console.log("data"),
error => {
console.log(error);
},
() => console.log("Finished")
);

在 chrome 开发者工具中,这是 console.log 的返回:

Error: [object Object](…)

但是http服务catch的实际返回是这样的:{ “错误”:“invalid_credentials”,“error_description”:“无效凭证”}这是我想进入 login.component

最佳答案

在您的 .catch() 中,更改:

return Observable.throw(new Error(details));

到:

return Observable.throw(details);

关于angular - 解析从 HTTP catch 返回的错误 - Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40067831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com