我根据 Angular 返回的 http 响应显示警报。我的代码适用于 Get 和 post 方法,但不适用于 put 和 delete 方法。我被困在这里,如果有人可以帮助我,我会非常高兴。 ApiUrl.ts => export const AlertUrls: string[] = [ // 后端服务 url ]
我的拦截器.ts => 从“../ApiUrl”导入{AlertUrls,集合};
return next.handle(req).pipe(
map((response: any) => {
if ( AlertUrls.includes(req.url) && req.method !=='GET' && response instanceof HttpResponse && response.status === 200) {
this.alertService.showSuccessAlert();
}
return response;
}),
Url 不匹配是您面临的问题,您可以简单地使用字符串属性,
contains
来检查字符串是否存在于 url 中,而不是进行完整的相等性检查!
AlertUrl:/删除
将匹配
完整网址:/delete/123uuh4u23424
return next.handle(req).pipe(
map((response: any) => {
if (AlertUrls.find((url: any) => req.url.contains(url)) && req.method !=='GET' && response instanceof HttpResponse && response.status === 200) {
this.alertService.showSuccessAlert();
}
return response;
}),