Заголовок в get.Угловой 6 - PullRequest
0 голосов
/ 10 октября 2018

Я делаю пример, который я взял из этой же сети, но я не знаю, что я делаю неправильно, что дает мне ошибку, и хотя я смотрю на это, я не вижу, что я 'Я делаю неправильно.

При выполнении «response => response.json ()» я получаю следующую ошибку:

Свойство json не существует в типе Object

Мое служение таково:

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

@Injectable({
  providedIn: 'root'
})
export class CompetenceService {

  public url: string;

  constructor(private httpCliente: HttpClient) {}

  public createUser(): Observable < any > {
    const getHeaders: HttpHeaders = new HttpHeaders({
      'Content-Type': 'application/json'
    });
    return this.httpCliente
      .get('http://xxx/xxx/xxx', {
        headers: getHeaders
      }).pipe(
        map(
          response => response.json() < --error: The 'json'
          property does not exist in the 'Object'
          type
        )
      );
  }
}

Кто-то видит, что я поступаю неправильно.

1 Ответ

0 голосов
/ 10 октября 2018

Вам не нужно map, так как вы используете HttpClient.Это требуется только в том случае, если вы используете Http из @angular/http

HttpClient, которые предоставляют вам фактические данные ответа.Таким образом, вам не нужно вызывать json в ответе, чтобы получить фактические данные, как вы должны были сделать в случае использования Http.И если вы это сделаете, поскольку в данных ответа не будет метода с именем json, он выдаст ошибку.И это то, что он сделал.

Избавьтесь от этого, и с вами все будет в порядке.

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

@Injectable({
  providedIn: 'root'
})
export class CompetenceService {

  public url: string;

  constructor(private httpCliente: HttpClient) {}

  public createUser(): Observable < any > {
    const getHeaders: HttpHeaders = new HttpHeaders({
      'Content-Type': 'application/json'
    });
    return this.httpCliente
      .get('http://xxx/xxx/xxx', {
        headers: getHeaders
      });
  }
}
...