Я пытаюсь получить пользовательский параметр из http-запроса в перехватчике. Мне нужно это, чтобы показать или нет сообщение об ошибке.
Я установил пользовательский параметр следующим образом:
getTickets(): Observable<Ticket> {
var params = new HttpParams();
params.append('showErrorMessage', 'false');
return this.http.get(Conf.BaseUrl + 'tickets', { params: params });
}
И я пытаюсь получить параметр в моем перехватчике:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).pipe(
tap(
(event: HttpEvent<any>) => {
let show = req.params.get('showErrorMessage');
...
}
)
)
}
В req.params нет моего пользовательского параметра, поэтому я думаю, что это неправильный способ установки и получения параметров запроса.
Какие-либо предложения?
Спасибо
EDIT:
Чтобы избежать путаницы, я меняю свой вопрос, надеюсь, будет понятнее.
Я должен установить параметр, вызывающий метод службы, и сделать так, чтобы перехватчик мог получить этот параметр. Есть ли способ сделать это? Можно ли передать параметр из службы перехватчику во время http-запроса?
Я пытался использовать HttpHeaders и HttpParams, но это не работает.
решаемые
Я нашел решение. Я не знаю причину, но использование переменной params, так как HttpParams не работает. Вместо этого это работает:
getTickets(): Observable<Ticket> {
return this.http.get(Conf.BaseUrl + 'tickets', {
headers: {
showErrorMessage: 'false'
});
}
и в перехватчике:
...
tap(
(event: HttpEvent<any>) => {
let show = req.headers.get('showErrorMessage');
...
}
)
...
Я получаю значение, установленное в запросе http.