代码之家  ›  专栏  ›  技术社区  ›  Jose

get中的标题。角度6

  •  0
  • Jose  · 技术社区  · 7 年前

    我正在做一个例子,我从同一个网站,但我不知道我做错了什么,给我一个错误,即使我看它,我没有看到我做错了什么。

    执行“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 回复  |  直到 7 年前
        1
  •  1
  •   SiddAjmera    7 年前

    你不需要这么做 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
          });
      }
    }