如何从httpclient angular 6访问响应值

问题描述 投票:0回答:1

我正在使用HttpClient发送请求。我已经提供服务来发送请求。

import { Injectable } from '@angular/core';
import { HttpClient, HttpParams, HttpHeaders,HttpResponse ,} from '@angular/common/http';
import {Observable} from 'rxjs';
import {map } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class HttpService {
  apiRoot: string = 'https://xxxx/api';

  constructor(private http: HttpClient) { }

  getQueryParam(obj) {
    let search = new HttpParams();
    for (let key in obj) {
      search =  search.set(key, obj[key]);
    }
    return search;
  }


  post(apiURL, params, data){
    console.log('Inside Post Request');
    let paramsData = this.getQueryParam(params);
      let CompleteURL = `${this.apiRoot}` + apiURL;
      return this.http.post(CompleteURL,data,{params : paramsData,observe : 'events'});
  }
}

在我的组件中:

login() {
    this.admin.password = Md5.hashStr(<string>this.admin.password);
    this._httpService.post('/loginAdmin', { "name": "vinay" }, this.admin)
      .subscribe(res => {
        console.log(res.success);

      },
        (err: HttpErrorResponse) => {
          if (err.error instanceof Error) {
            console.error('An error occurred:', err.error.message);
          } else {
            console.error(`Backend returned code ${err.status}, body was: ${err.error}`);
          }
        }
      );
  }

在我的组件中,我想访问响应正文值,但它给我错误“属性'成功'不存在类型'HttpEvent<Object>'”。我已经检查谷歌一些制作界面。但“res.success”可以是数组或对象。请帮我。

angular typescript angular6
1个回答
0
投票
login() {
    this.admin.password = Md5.hashStr(<string>this.admin.password);
    this._httpService.post('/loginAdmin', { "name": "vinay" }, this.admin)
      .subscribe(res:any => {
        console.log(res.success);

  },
    (err: HttpErrorResponse) => {
      if (err.error instanceof Error) {
        console.error('An error occurred:', err.error.message);
      } else {
        console.error(`Backend returned code ${err.status}, body was: ${err.error}`);
      }
    }
  );
}

使用任何类型,为您从服务获得的响应。希望有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.