Angular получает необработанный http запрос перед отправкой - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь получить HTTP-запросы перед их отправкой на сервер.

Моей первой попыткой было написать HttpIntercepter следующим образом:

@Injectable()
export class HttpLoggingInterceptorProvider implements HttpInterceptor
{
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>
  {
    console.log('Request To Be Logged:');
    console.dir(req);

    if(req.body)
    {
      try
      {
        let formData = <FormData>req.body;

        if(formData.has('id_front'))
          console.log(formData.get('id_front'));

        if(formData.has('id_back'))
          console.log(formData.get('id_back'));
      }
      catch(err)
      {

      }
    }


    return next.handle(req);
  }

Это работает нормально, ноне то, что я хочу.Я хочу получить окончательный составленный запрос как необработанный текст, а не как объекты.

На данный момент вывод консоли выглядит следующим образом

Как вы видите, я не вижуне получить никакой информации из этого.Я не могу видеть, сколько или какие значения установлены.

Но когда я запрашиваю содержимое тела программно, я могу получить значения следующим образом:

let formData = <FormData>req.body;

        if(formData.has('id_front'))
          console.log(formData.get('id_front'));

        if(formData.has('id_back'))
          console.log(formData.get('id_back'));

По крайней мере, я знаю, чточто-то существует в теле, кроме типа FormData ...

Мой вопрос

Как я могу получить необработанный составленный запрос, который будет отправлен на сервер?

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Возможно, вы могли бы сделать

console.log(JSON.stringify(req.body))
0 голосов
/ 09 мая 2019

Это потому, что блок try выполняется после всего остального.Угловой http-запрос всегда выполняется после остальных, поэтому вам нужно получить данные оттуда или сделать это другим способом

...