Angular6 Angular 6 httpclient错误详细信息
我有一个Angular 6应用程序,当我发出http请求时:Angular6 Angular 6 httpclient错误详细信息,angular6,angular-http,angular-httpclient,Angular6,Angular Http,Angular Httpclient,我有一个Angular 6应用程序,当我发出http请求时: this.myService.login(this.form.email.value, this.form.password.value) .pipe(first()) .subscribe( data => { //do something on success },
this.myService.login(this.form.email.value, this.form.password.value)
.pipe(first())
.subscribe(
data =>
{
//do something on success
},
error =>
{
//here the response `error` if I use console.log(error)
//shows just Bad request if my API returns 404.
//How can I access other properties of the error, like
//the body?
}
);
如果HTTP调用返回错误,如何访问错误的其他属性
如果出现错误,APi将返回404错误请求,但也会有一个JSON正文:
{
Status: "Error",
Body : "Something happened"
}
我如何在错误处理中访问它?您可以这样做(使用angular 6测试)
首先调用其他类中的api,即(api帮助器服务)
在上述方法中,不要将.map
或.subscribe
添加到http post方法
现在,从要与API交互的组件类调用此方法
formSubmit() {
// your logic
this.apiservice.MyApiCall(apivalues)
.subscribe(
data => {
let httpresponse = data;
let response = data.json();
if (httpresponse.status == 200) {
// logic when success
}
else {
// else
}
}
}, err => {
let httpresponse = err;
let response = err.json();
if (httpresponse.status == 0) {
//if api is dead or couldn't reach
}
else {
//for other request , 401 404 etc
}
});
}
}
要获得成功代码
let httpresponse = data;
^^这将向您获取httpresponse(状态、代码、httpurl、其他api信息)
^^这将获得api创建和发送的数据(实际业务响应)
错误的逻辑也是如此
let httpresponse = err;
let response = err.json();
^^^第1行获取基本http响应
^^^第二行给出了在http请求use
this.http.get(url,{observe:'response})中的api(用户自定义主体)中创建的错误消息代码>。您将获得响应状态以及所有详细信息。
let response = data.json();
let httpresponse = err;
let response = err.json();