Angular拦截器错误处理put&delete方法问题

问题描述 投票:0回答:1

我根据 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;
  }),
javascript angular error-handling angular-http-interceptors angular-errorhandler
1个回答
0
投票

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;
  }),
© www.soinside.com 2019 - 2024. All rights reserved.