未捕获的类型错误:无法在 getOriginalError 处读取未定义的属性“ngOriginalError” - 当 httpClient 返回字符串时

jop*_*hab 2 angular

当我尝试使用返回字符串的HttpClient调用 API 时,调用了subscribe 方法的错误处理程序。

前端代码:

this.httpClient.get<string>(`${this.baseUrl}/account/getname`).subscribe(
      (accountName)=> console.log(accountName),
      () => console.log("Failure")
    ); 
Run Code Online (Sandbox Code Playgroud)

控制器中的后端代码:

[HttpGet]
public string GetName()
{               
   return "Sample Account Name";
 }
Run Code Online (Sandbox Code Playgroud)

前端代码会将“ Failure”记录到控制台。

如果从 中删除错误通知方法subscribe(),则会发生以下错误

未捕获的类型错误:无法在 getOriginalError 处读取未定义的属性“ngOriginalError”

Vad*_*adi 5

未捕获的类型错误:无法在 getOriginalError 处读取未定义的属性“ngOriginalError”

发生这种情况是因为来自服务器端的响应是一个错误,并且没有错误处理程序。我想,通过HttpClient以下方式发出http请求时,解决方案总是处理错误:

import { catchError } from 'rxjs/operators';

makeHttpRequest(url): Observable<any> {
  return this.httpClient.get(url)
   .pipe(
     catchError(err => console.log(err))
   );
}

makeHttpRequest(`${this.baseUrl}/account/getname`).subscribe(
  (accountName) => console.log(accountName);
); 
Run Code Online (Sandbox Code Playgroud)