我使用以下函数发布给定类的对象。
mydivclass
}
在要发布内容的所有服务中调用此函数。这样。
public Post<T>(object: T, url: string, httpOptions: {}): Observable<T> {
return this.httpClient.post<T>(`${environment.apiEndpoint}` + url, object, httpOptions)
.pipe(
catchError(this.handleError)
);
然后,在使用该服务的组件内执行addEquipment。这样。
public addEquipment(equipment: Equipment): Observable<Equipment> {
return this.shared.Post<Equipment>(equipment, this.url, this.header);
}
问题是当API返回错误(我可以在网络标签中看到一条错误消息)时,它告诉我响应中没有正文。 API返回HttpResult,错误消息将添加到响应字段。
this.equipmentService.addEquipment(result)
.subscribe((data: any) => { this.alertService.success(data) }, (error: any) => this.alertService.error(error));
我使用以下函数来处理错误。
return new HttpResult { StatusCode = HttpStatusCode.Conflict, Response = "Error message"}
它是Angular 6和ServiceStack API。 所有建议将不胜感激。
答案 0 :(得分:0)
仅供参考,最好在ServiceStack中返回结构化的错误响应,您可以使用以下方法进行处理:
HttpError.Conflict("Error message");
将ServiceStack's TypeScript ServiceClient与以下命令配合使用时,
try {
var response = await client.post(request);
} catch (e) {
console.log(e.responseStatus.message);
}
但是从handling errors with Angular HTTP Client的答案中可以看出,错误内容可以通过以下方式访问:
this.httpClient
.get("data-url")
.catch((err: HttpErrorResponse) => {
// simple logging, but you can do a lot more, see below
console.error('An error occurred:', err.error);
});