如何为 Ionic 2 中的所有请求设置默认 Http Headers?

How do I set default Http Headers for all requests in Ionic 2?

我搜索了如何设置默认 Http Headers 我的所有请求,我发现如何在 Angular 2 中使用 bootstrap 函数实现,但它在如本问题 .

所述,Ionic 2

我想将 Content-Type header 设置为 application/json 而不是在 per-request

中设置

我一直在尝试覆盖 BaseRequestOptions 并将它们注入我的应用程序,但我无法覆盖它们。

app.ts

...
import {BaseRequestOptions, Headers, HTTP_PROVIDERS, Http, RequestOptions} from '@angular/http';

@Injectable()
export class MyRequestOptions extends BaseRequestOptions{
    headers:Headers = new Headers({
        'Content-Type': 'application/json; charset=UTF-8'
    });
}

@App({
  template: '<ion-nav [root]="rootPage"></ion-nav>',
  config: {},
  providers: [HTTP_PROVIDERS, MyRequestOptions]
})
export class MyApp {
  rootPage: any = HomePage;

  constructor(platform: Platform) {
     // init
  }
}

myService.ts

import {Injectable} from '@angular/core';
import {Http, Headers} from '@angular/http';

@Injectable()
export class MyService {
    constructor(private http: Http) {
    }

    getUser(id) {
         return this.http.post('/api/User/Get/', JSON.stringify({ id: id }));
    }
}

我漏掉了什么,我是不是用错了 providers 注射剂?

您没有正确注册MyRequestOptions

import { provide } from '@angular/core';
import { HTTP_PROVIDERS, RequestOptions, BaseRequestOptions, Headers } from '@angular/http';

...
@App({
  template: '<ion-nav [root]="rootPage"></ion-nav>',
  config: {},
  providers: [HTTP_PROVIDERS, provide(RequestOptions, { useClass: MyRequestOptions })]
})

或者您可以像这样尝试通过地图文字注册提供者:

{ provide: RequestOptions, useClass: MyRequestOptions }