[英]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.