Я ищу способ перехватить все HTTP-запросы, сделанные angular, и добавить некоторые заголовки. В релизах до angular2 RC5
(до NgModule
) было так, например:
class MyOptions extends BaseRequestOptions {
Authorization: string = 'Bearer ' + localStorage.getItem('tokenName');
}
bootstrap(AppComponent,
[HTTP_PROVIDERS,
{ provide: RequestOptions, useClass: MyOptions },
appRouterProviders,
disableDeprecatedForms(),
provideForms(),
]).catch(err => console.error(err));
В настоящее время я использую версию 2.0 final
, и поскольку исследование того, как это будет реализовано в этой версии, будет примерно таким:
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
providers: [
{ provide: RequestOptions, useClass: MyOptions }
],
bootstrap: [ AppComponent ]
})
export class AppModule {
}
@Injectable()
export class MyOptions extends RequestOptions {
constructor() { super({method: RequestMethod.Get, headers: new Headers()}); }
}
Выдает следующую ошибку: TypeError: Can not read property 'merge' of null
. Как видно из этого примера.
Примечание. Реализация
MyOptions
такая же, какBaseRequestOptions
, скопировано, так как при использованииBaseRequestOptions
в{Provide: RequestOptions, useClass: BaseRequestOptions}
все работает, как видно в этом примере.