我已经搜索了如何设置Default Http Headers我的所有请求,并且我找到了如何使用bootstrap
函数在Angular 2中实现,但它在Ionic 2中不可用,因为在这个问题中描述How to set default HTTP header in Angular2?。
我想将Content-Type
标题设置为application/json
,而不是按请求设置
我一直试图覆盖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
注射?
答案 0 :(得分:4)
您未正确注册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 }
或者您可以尝试通过地图文字注册提供商,如下所示:
class User(db.Model):
'''
def is_authenticated(self):
return True
def is_active(self):
return True
def is_anonymous(self):
return False
def get_id(self):
return unicode(self.id)