在Angular 7中,Http拦截器不起作用的问题可能是由于以下原因导致的:
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 AppModule { }
这里的MyInterceptor是你自己定义的拦截器类。
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: BInterceptor,
multi: true
},
{
provide: HTTP_INTERCEPTORS,
useClass: AInterceptor,
multi: true
}
]
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> {
// 在请求前或请求后进行拦截处理
return next.handle(req);
}
}
这里的intercept方法是你自己定义的拦截逻辑。
如果以上步骤都正确,但拦截器仍然不起作用,则可能是其他代码或配置问题导致的。你可以检查浏览器的开发者工具中的网络请求,确保拦截器被正确应用到了请求上。另外,你还可以在拦截器的intercept方法中添加一些console.log语句,用于调试和查看拦截器是否被调用。
希望以上解决方法能帮助你解决问题。