我正在构建一个使用jwt令牌的应用程序。还有一些路由不需要它们,但大多数呼叫需要一个令牌。所以我想扩展http类并添加我的自定义标头。我仍然想使用原始的http类进行正常调用。我在线阅读(关于stackoverflow)。但是对于一些事情,我得到以下错误:
EXCEPTION: Error in :0:0 caused by: No provider for ConnectionBackend!
我的app模块如下所示:
@NgModule({
declarations: [
MyApp,
DashboardPage,
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
DashboardPage,
],
providers: [
{
provide: [Http,SecureHttpService],
deps: [XHRBackend, RequestOptions],
useFactory: (backend: XHRBackend, defaultOptions: RequestOptions) => {
return new SecureHttpService(backend, defaultOptions);
},
useClass: SecureHttpService
},
{
provide: ErrorHandler,
useClass: IonicErrorHandler,
},
SecureHttpService
]
})
export class AppModule {}
服务扩展看起来像这样
import { Injectable } from '@angular/core';
import { Http, ConnectionBackend, Headers, RequestOptions, Response, RequestOptionsArgs} from '@angular/http';
@Injectable()
export class SecureHttpService extends Http {
constructor(backend: ConnectionBackend, defaultOptions: RequestOptions) {
super(backend, defaultOptions);
}
}
我希望在其他服务中使用它:
constructor (private http: Http, private secureHttp: SecureHttpService) {}
我也试过使用像这样的提供(没有http):
provide: SecureHttpService,
但我尝试的所有内容都会导致同样的错误。我没有得到这个错误以及它为什么会发生。
答案 0 :(得分:0)