angular2实现统一的http请求头方法
如下所示:
//方案1:能用,但token信息不能写在服务中,应该用全局变量替代,而且还得考虑参数复合问题。
@Injectable()
exportclassDefaultRequestOptionsextendsBaseRequestOptions{
constructor(){
super();
this.headers.set('Content-Type','application/json');
}
}
exportconstrequestOptionProvider={provide:RequestOptions,useClass:DefaultRequestOptions};
//方案2:能用,比较正规的实现,但以后请求就只能用myHttp对象了,而且还要考虑参数复合问题。
exportclassmyHttpextendsHttp{
defaultHeaders=newHeaders({
'Content-Type':'application/json'
});
constructor(_backend:ConnectionBackend,_defaultOptions:RequestOptions,privateappInitService:AppInitService){
super(_backend,_defaultOptions);
}
get(url:string,options?:RequestOptionsArgs):Observable{
letoptionBuf=newRequestOptions({
headers:this.defaultHeaders,
params:{'token':this.appInitService.token}
});
//hereextendoptions;
returnsuper.get(url,optionBuf);
}
}
exportfunctionmyHttpFactory(xhrBackend:XHRBackend,requestOptions:RequestOptions,appInitService:AppInitService):myHttp{
returnnewmyHttp(xhrBackend,requestOptions,appInitService);//创建myHttp对象
}
exportconstmyHttpProvider={
provide:myHttp,
useFactory:myHttpFactory,
deps:[XHRBackend,RequestOptions,AppInitService]
};
以上这篇angular2实现统一的http请求头方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。