angglar 2は統一したhttp要求ヘッドメソッドを実現します。
以下の通りです
// 1: , token , , 。
@Injectable()
export class DefaultRequestOptions extends BaseRequestOptions {
constructor() {
super();
this.headers.set('Content-Type', 'application/json');
}
}
export const requestOptionProvider = {provide: RequestOptions, useClass: DefaultRequestOptions};
// 2: , , myHttp , 。
export class myHttp extends Http {
defaultHeaders = new Headers({
'Content-Type': 'application/json'
});
constructor(_backend: ConnectionBackend, _defaultOptions: RequestOptions, private appInitService: AppInitService) {
super(_backend, _defaultOptions);
}
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
let optionBuf = new RequestOptions({
headers: this.defaultHeaders,
params: {'token': this.appInitService.token}
});
//here extend options;
return super.get(url, optionBuf);
}
}
export function myHttpFactory(xhrBackend: XHRBackend, requestOptions: RequestOptions, appInitService: AppInitService): myHttp {
return new myHttp(xhrBackend, requestOptions, appInitService); // myHttp
}
export const myHttpProvider = {
provide: myHttp,
useFactory: myHttpFactory,
deps: [XHRBackend, RequestOptions, AppInitService]
};
以上のこのangglar 2は統一したhttp要求の方法を実現しました。つまり、小編集は皆さんに全部の内容を共有しました。参考にしてもらいたいです。どうぞよろしくお願いします。