Web Services angular中的HttpErrorResponse行为不像对象

vcirk6k6  于 2023-10-24  发布在  Angular
关注(0)|答案(1)|浏览(175)

我有一个调用的一个服务在角一样

removeFromAttended(class: CLS_Class) {
    this.svcSubscriptions.deleteByStudenteAndClass(class.id , this.studentID).subscribe({
      next: res=> { ...do things... },
      error: (err: HttpErrorResponse) => { console.log("I get:", err) }
    })
  }

这是删除数据库中的一条记录,它工作得很好。
由于在另一个表中可能有与我想要删除的表相关的记录,所以有时候删除是不可能执行的。
然后,我重构了我的Web服务,当它检测到某个表中有相关记录时,会返回一条错误消息,比如“表xy中有相关记录”,并返回一个BadRequest.

if (relatedPagelle.Any())
       {
            // Return a message to indicate related records
            return BadRequest("Esistono pagelle per questa iscrizione. Impossibile eliminare.");
        }

它在C#中的Visual Studio的SWAGGER中工作正常,返回所需的消息。
然后我发布了webservice,我调用了这个服务,当我试图删除一个在另一个表中有相关记录的记录时,它正确地返回了一个错误。
现在的问题是:从Chrome Inspect控制台,我实际上可以看到消息:它确实到达网络/响应窗口(见截图),但我不知道如何从Angular获取它。
我尝试了err的每一个属性,比如err.message,err.status,err.headers,err.type,err.name.所有这些都返回undefined,而如果我简单地写err(如上所述),它返回BadRequest,好像err是一个字符串而不是一个对象.
但它不应该是一个HttpErrorResponse对象,其中包括许多属性,其中的消息太?为什么它出现在Chrome控制台从网络窗口,它不能从代码访问?Thanksx 1c 0d1x

vqlkdk9b

vqlkdk9b1#

我已经找到了问题所在。我有一个httpErrorInterceptor,它把所有的错误都搞砸了,并把它们变平了。
我不记得我为所有调用创建了这样一个中间步骤。删除它解决了这个问题。现在err又回到了我所期望的具有属性的对象。

相关问题