繁体   English   中英

Angular在发送之前获取原始http请求

[英]Angular get raw http request before sending

我试图在发送到服务器之前获取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的类型......

我的问题

如何获取将发送到服务器的原始组合请求?

那是因为“try”块在其他所有内容之后执行。 Angular http请求总是在其余的后执行,因此您必须从那里获取数据或以其他方式执行

你可能会这样做

console.log(JSON.stringify(req.body))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM