我正在使用新版本的angular,并且面临着在所有请求中都没有在请求标头中发送授权令牌的问题。 自从我升级到新版本8后,我检查了所有内容,仍然遇到了同样的问题。 当我发送一些请求时,即使我在控制台中打印了授权标头以检查其是否存在,我也找不到授权标头。
这是Angular 8的新版本。
@NgModule({
declarations: [
AppComponent,
NavbarComponent,
FooterComponent,
HomeComponent,
ContactUsComponent,
NotFoundComponent,
CartComponent,
LoginComponent
],
imports: [BrowserModule, AppRoutingModule, CustomModule, LayoutModule],
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: RequestInterceptor,
multi: true
}
],
bootstrap: [AppComponent]
})
export class AppModule {}
{{1}}
我希望有授权标头。
答案 0 :(得分:1)
导入HTTP_INTERCEPTORS
和您的服务,并在提供商中提供
<! app.module.ts -->
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { RequestInterceptor } from './your-interceptor-path'
@NgModule({
declarations: [...],
imports: [...],
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: RequestInterceptor,
multi: true
}
]
您仅将
Authorization
标头克隆到HttpRequest
在RequestInterceptor
标头克隆旁边的Authorization
服务中添加以下行
if (!req.headers.has('Content-Type')) {
req = req.clone({ headers: req.headers.set('Content-Type', 'application/json') });
}
req = req.clone({ headers: req.headers.set('Accept', 'application/json') });