angular - 如何成功处理错误和成功消息?
问题描述
想要在模式窗口上显示响应正文消息。这是来自服务器端。所以当发生任何错误时,下面的代码工作正常。但是当它成功执行时它没有按预期工作(看不到成功消息)。我知道我需要修改 errorHandle方法。但作为 Angular 的新手,我无法找出最佳解决方案。请指导我。
注册.java
@RequestMapping(value = "/createRegistration",method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity createNewRegistration(@RequestBody Registration registration) {
boolean isTrue=assetLiabilityService.createRegistration(registration);
if(isTrue) {
return new ResponseEntity<>("User already Exist", HttpStatus.BAD_REQUEST);
}
else {
return new ResponseEntity<>("User Created Successfully",HttpStatus.OK);
}
}
注册服务.ts
saveRegistration(regObj:any) {
return this.http.post<any>('url',
{
name:regObj.name,
password:regObj.password,
email:regObj.email,
}). pipe( share(),
catchError(this.errorHandle));
errorHandle(error) {
let errorMessage = '';
if(error.error instanceof ErrorEvent) {
// Get client-side error
errorMessage = error.error.message;
} else {
// Get server-side error
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
}
console.log(errorMessage);
return throwError(errorMessage);
}
注册组件.ts
save() {
this.service.saveRegistration(this.regObj).subscribe(data=>{
console.log("data from Server::"+data.text());
},
error => {
console.log("Error::"+error);
});
}
解决方案
ofc 这行不通。
produces = MediaType.APPLICATION_JSON_VALUE
您正在告诉应用程序在正文中生成 json 结果。
return new ResponseEntity<>("User Created Successfully",HttpStatus.OK);
但是您正在返回一个ResponseEntity
包含纯文本的内容。如果您不想返回 json,则返回一个可以序列化/反序列化为 json 的对象。