Angular 6 получить запрос пользовательского параметра в http перехватчик - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь получить пользовательский параметр из 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.

1 Ответ

1 голос
/ 05 апреля 2019

на самом деле вы можете получить его, позвонив напрямую

let show = req.params.get.showErrorMessage;

или

let show = req.params.get.['showErrorMessage'];

Вы можете console.log(req.params) посмотреть, что у вас там. Дайте мне знать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...