在angular中咱们能够将http请求封装成服务,在组件中引入该服务,
就能够实现先后端的数据请求。
具体实现:
一、ng generate service app
在app根目录下生成app.service.ts的文件,里面基本配置项已经生成。
二、引入Injectable注入模块,同时引入http模块
import { Injectable } from '@angular/core’
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';编程
@Injectable({
providedIn: 'root'
})
加上providedIn: ‘root’,自动将服务加入到跟模块的providers中,这样该服务就能够在应用中的任何地方使用
三、构造函数中声明http的私有属性,将httpClient注入到http中
constructor (
private $http: HttpClient
){}json
httpParams类能够设置请求参数后端
具体设置:promise
let params = new HttpParams();app
params=params.set(key, value);异步
httpHeader类用来设置请求头ide
具体设置:异步编程
let headers = new HttpHeaders().set("Content-Type", "application/json");函数
http的Request方法,执行请求并返回Observable对象(相似于promise,处理异步编程的解决方案),最后直接调用Observable.subscribe方法处理结果。post
例如:
this.$http.request('get', url, {params: params, headers: headers});
request方法的传参官方说明,能够针对post,get等作统一封装。