angular2实现统一的http请求头方法
程序员文章站
2022-04-09 12:55:36
如下所示:
//方案1:能用,但token信息不能写在服务中,应该用全局变量替代,而且还得考虑参数复合问题。
@injectable()
export cla...
如下所示:
//方案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] };
以上这篇angular2实现统一的http请求头方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。