Angular 角度6-修改拦截器中的响应体不工作
如何使用Angular 角度6-修改拦截器中的响应体不工作,angular,Angular,如何使用HttpInterceptor修改响应主体,我遇到了一个问题。这是我的密码: return next.handle(modifiedReq).pipe(tap((event: HttpEvent<any>) => { if (event instanceof HttpResponse) { return event.clone({ body: this.modifyBody(event.body) });
HttpInterceptor
修改响应主体,我遇到了一个问题。这是我的密码:
return next.handle(modifiedReq).pipe(tap((event: HttpEvent<any>) => {
if (event instanceof HttpResponse) {
return event.clone({ body: this.modifyBody(event.body) });
}
return event;
}, error => {
this.modifyError(error);
return of(error);
}));
private modifyBody(body: any) {
//modify body here and return it
}
这实际上是可行的,但我在angular CLI中遇到了一个错误,因为body属性是一个常量,而且在官方anuglar教程中,它们总是像我的例子一样进行克隆
那么,有没有人有类似的问题,或者可以给我一些建议如何在这里继续?请尝试
map
操作符,而不是点击
点击将不会修改结果如果退出您的如果instanceof
,会发生什么?我更新了问题的代码,因为缺少一些内容。我必须使用instanceof cause,否则我无法在事件对象(事件为HttpResponse)上使用.clone。clone
将起作用。就是这样!感谢所有神圣的爱,谢谢你。我以为我把它当成了地图,但很明显,我无意中决定用水龙头。。。
event.body = this.modifyBody(event.body);