欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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请求头方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。