我需要根据我的初始意图在Angular的HTTP拦截器中有条件地采取行动,然后再发送请求。这是一个简单的抽象组成:
与HttpClient发出的请求完全相同(URL,参数等),两个目的:
需要显示加载程序的请求(例如页面更改,初始加载等)
this.http.post(url, data, config = {**someCustomParam**: true});
请求不]显示一个加载程序(例如状态检查,Ping等)
this.http.post(url, data, config = {**someCustomParam**: false});
截取请求导致诸如此类的事情:
@Injectable() export class RequestInterceptor implements HttpInterceptor { constructor(private injector: Injector) { } public intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { return next.handle(request).do((event: HttpEvent<any>) => { if (event instanceof HttpErrorResponse) { } }, (err: any) => { if(request.someCustomProperty) { **// Do somethnig on TRUE** } else { **// Do somethnig on FALSE** } }); } }
我面临的问题是,我无法在请求中传递自定义参数,并且无法在响应到达后再见面。这是到目前为止我发现的内容:
谢谢您!
在发送请求之前,我需要根据我的初衷在Angular的HTTP拦截器中有条件地采取行动。这是一个简单的抽象构成:完全相同的请求(URL,参数等)...
不建议使用前两种方法。
我建议您将自定义参数作为标头添加到请求中,无论如何,您都可以在拦截器中检查它并从请求中删除它。这将是最快的解决方案。
作为一种解决方法,我编写了一个在执行http请求之前执行的代码。