Angular6 Angular 6 httpclient错误详细信息

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 },

我有一个Angular 6应用程序,当我发出http请求时:

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();