如何在组件中获取清晰的 http-request 数据?

Posted

技术标签:

【中文标题】如何在组件中获取清晰的 http-request 数据?【英文标题】:How get clear http-request data in component? 【发布时间】:2018-05-14 02:42:37 【问题描述】:

服务从后端获取 json-data:

constructor(private http: Http)  ;
getUsers(): Observable<any> 
    return this.http.get('http://127.0.0.1:8000/app_todo2/users_list');
;

在组件中,处理这个数据:

ngOnInit() 
    this.getAllUsersData();

private getAllUsersData(): void 
    this.usersService.getUsers().subscribe(
    data =>     
      this.allUsersData = JSON.parse(data.json());                 
      console.log(this.allUsersData);
    )
;  

但我需要在服务中处理这些数据。我需要获取组件清除数据:

private getAllUsersData(): void 
    this.usersService.getUsers().subscribe(
    data =>     
      this.allUsersData = data;                 
      console.log(this.allUsersData);
    )
;  

请帮帮我。

【问题讨论】:

你的问题不清楚 请阅读angular.io/guide/http(或者,如果您出于某种原因必须使用已弃用的客户端,请阅读v2.angular.io/docs/ts/latest/guide/server-communication.html)。另请注意,.json() 会为您解析响应,因此 JSON.parse(data.json()) 没有任何意义。 angular.io/tutorial/toh-pt6#httpclientget-returns-response-data 【参考方案1】:

映射您的服务数据:

    getUsers(): Observable<any> 
        return this.http.get('http://127.0.0.1:8000/app_todo2/users_list')
                 .map(data => data.json());
    

然后:

private getAllUsersData(): void 
    this.usersService.getUsers().subscribe(
    data =>     
      this.allUsersData = data;                 
      console.log(this.allUsersData);
    )
; 

【讨论】:

以上是关于如何在组件中获取清晰的 http-request 数据?的主要内容,如果未能解决你的问题,请参考以下文章

Element-ui上传组件http-request用法

http-request 失败后获取状态文本

React 如何获取组件的实例

饿了么Element UI之Upload组件图片上传原创

使用Element的upload上传组件,不使用action属性上传

vue 上传文件到 阿里云OSS,并获取上传进度