当我尝试使用返回字符串的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”
未捕获的类型错误:无法在 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)
| 归档时间: |
|
| 查看次数: |
8782 次 |
| 最近记录: |