Angular 角度8-HttpInterceptor-读取响应头
我的HttpInterceptor的响应中缺少http头。我可以得到一个身体,但不能得到头球。请参阅附件输出和我的代码Angular 角度8-HttpInterceptor-读取响应头,angular,http-headers,response,angular-http-interceptors,Angular,Http Headers,Response,Angular Http Interceptors,我的HttpInterceptor的响应中缺少http头。我可以得到一个身体,但不能得到头球。请参阅附件输出和我的代码 @Injectable() export class ApiVersionInterceptor implements HttpInterceptor { intercept( req: import("@angular/common/http").HttpRequest<any>, next: import("@angula
@Injectable()
export class ApiVersionInterceptor implements HttpInterceptor {
intercept(
req: import("@angular/common/http").HttpRequest<any>,
next: import("@angular/common/http").HttpHandler
): import("rxjs").Observable<import("@angular/common/http").HttpEvent<any>> {
return next.handle(req).pipe(
tap(httpEvent=>{
// Skip request
if(httpEvent.type === 0){
return;
}
console.log("response: ", httpEvent);
})
);
}
}
@Injectable()
导出类ApiVersionInterceptor实现HttpInterceptor{
拦截(
请求:导入(“@angular/common/http”)。HttpRequest使用如下方法:
@Injectable()
export class ApiVersionInterceptor implements HttpInterceptor {
intercept(
req: import("@angular/common/http").HttpRequest<any>,
next: import("@angular/common/http").HttpHandler
): import("rxjs").Observable<import("@angular/common/http").HttpEvent<any>> {
return next.handle(req).pipe(
tap((httpEvent: HttpEvent<any>) =>{
// Skip request
if(httpEvent.type === 0){
return;
}
console.log("response: ", httpEvent);
let minTargetApiVersion : string;
if (httpEvent instanceof HttpResponse) {
if(httpEvent.headers.has('mintargetapiversion')) {
minTargetApiVersion = httpEvent.headers.get('mintargetapiversion');
}
}
})
);
}
}
@Injectable()
导出类ApiVersionInterceptor实现HttpInterceptor{
拦截(
请求:导入(“@angular/common/http”).HttpRequest,
下一步:导入(“@angular/common/http”).HttpHandler
):导入(“rxjs”)。可观察{
返回next.handle(req.pipe)(
点击((httpEvent:httpEvent)=>{
//跳过请求
if(httpEvent.type==0){
返回;
}
日志(“响应:”,httpEvent);
让MinTargetAversion:字符串;
if(httpEvent instanceof HttpResponse){
if(httpEvent.headers.has('minTargetAversion')){
minTargetAversion=httpEvent.headers.get('minTargetAversion');
}
}
})
);
}
}
Wohoo我解决了我的问题
这不是角度问题,而是服务器问题。我需要添加另一个标头:
"access-control-expose-headers": "mintargetapiversion"
Angular忽略未在“access control expose header”中指定的自定义头。我以前尝试过此操作,但出现错误:类型“HttpEvent”上不存在属性“headers”。我无法解决此问题。我通过点击((HttpEvent:any)=>{,但if语句始终为false。HttpEvent.headers.get('MinTargetAversion')修复了此问题将始终返回null。