要解决Angular中的Http拦截器未正确接收HTTP标头的问题,你可以按照以下步骤进行操作:
observe
选项为'response'
,以便完整接收HTTP响应的标头信息。import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class MyInterceptor implements HttpInterceptor {
intercept(req: HttpRequest, next: HttpHandler): Observable> {
const modifiedReq = req.clone({
setHeaders: {
'Content-Type': 'application/json'
},
observe: 'response' // 确保设置了observe选项为'response'
});
return next.handle(modifiedReq);
}
}
HTTP_INTERCEPTORS
令牌。import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { MyInterceptor } from './my-interceptor';
@NgModule({
imports: [
HttpClientModule
],
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: MyInterceptor,
multi: true
}
]
})
export class MyModule { }
HttpClientModule
模块。import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
import { AppComponent } from './app.component';
@NgModule({
imports: [
BrowserModule,
HttpClientModule // 确保导入了HttpClientModule模块
],
declarations: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule { }
通过按照以上步骤进行操作,你应该能够正确接收到HTTP拦截器中的标头信息。