我想要显示蓝色标记"错误"警惕。我试过这段代码:
create(doctor: Doctor): Promise<Response | Doctor> {
return this.http
.post(this.doctorsUrl, JSON.stringify(doctor), {headers: this.headers})
.toPromise()
.then(() => doctor)
.catch(this.handleError);
}
private handleError(error: Response): Promise<Response>{
console.error('An error occurred', error);
alert(error.json());
return Promise.reject(error);
}
但我只获得对象Object。如何解决这个&#34;错误&#34;?我应该为错误创建新类吗?
问候,Bartek:)
答案 0 :(得分:2)
您可以使用JSON.stringify()
将JSON对象转换为字符串警报(JSON.stringify(error.json()));
或者您可以将错误对象的值作为
alert(error._body.type)//将为您提供type = error
答案 1 :(得分:1)
您可以使用JSON.parse()
方法
JSON.parse(error.json()._body).errors[0]
将单独提供错误消息。 (如果我没有弄错的话,请原谅我)
答案 2 :(得分:0)
有两种方法可以处理错误或显示错误消息。
方法1:
let message= JSON.parse(error._body).errors;
您可以直接在前端显示消息,但这仅适用于单个错误情况。
方法2:当错误是对象形式时
let message = "";
errorMessage='';
for (let prop in JSON.parse(error._body).errors) {message +=JSON.parse(error._body).errors[prop][0] + "\n"; this.errorMessage = message;
}
答案 3 :(得分:0)
尝试这一行代码
let obj :ValidationError = JSON.parse(JSON.stringify(error.error));
stringify:将json转换为字符串
答案 4 :(得分:0)
这对我有用
const errorObjectAsString = JSON.stringify(error);