如何为 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 }
我搜索了如何设置默认 Http Headers 我的所有请求,我发现如何在 Angular 2 中使用 bootstrap
函数实现,但它在如本问题 .
我想将 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 }