我正在尝试获取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);
}
这很好,但不是我想要的。我想将最终的组合请求作为原始文本而不是作为对象。
目前控制台输出looks like this
如您所见,我没有得到任何信息。我看不到设置了多少个值。
但是当我以编程方式请求身体的内容时,我可以像这样获得值:
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 ...
我的问题
我如何获取将发送到服务器的原始组合请求?
答案 0 :(得分:0)
那是因为“ try”块在所有其他操作之后执行。 Angular http请求总是在其余部分之后执行,因此您必须从那里获取数据或以其他方式进行处理
答案 1 :(得分:0)
您可能会做
console.log(JSON.stringify(req.body))