我是一个像下面的服务器调用
在成功的情况下,
STATUS --- 200
{error_code: 0, status: "success", results: [,…], message: "Album successfully found."}
在失败的情况下, STATUS --- 401
Login credentials are incorrect.
我正在处理代码,
this.http.post(this.serverUrl+'login',loginForm.value,{headers: headers})
.subscribe(response => {
if (response.json().error_code === 0) {
console.log('success');
} else {
console.log('fail');
}
})
}
但这是一个错误(401状态)。所以它不会出现在其他情况下。任何人都建议帮助处理或捕获此错误。谢谢。
答案 0 :(得分:1)
订阅有一个错误回调:
this.http.post(this.serverUrl+'login',loginForm.value,{headers: headers})
.subscribe(
(response) => {
if (response.json().error_code === 0) {
console.log('success');
} else {
console.log('fail');
}
},
(error)=>{
console.log(error);
}
)
}
文档中的示例:https://angular.io/docs/ts/latest/guide/server-communication.html#!#the-herolistcomponent-class
答案 1 :(得分:1)
Subscribe
方法有3个参数,第一个是在收到成功响应时调用的,第二个是在收到错误响应时调用的,第三个是在完成时调用的。你应该试试这个;
this.http.post(yourParameters).subscribe(response => {
console.log('success');
}, error => {
console.log('fail')
});
我还建议您查看angular tutorial和Rxjs Subscribe。
答案 2 :(得分:1)
您也可以使用.catch
:
this.http.post(this.serverUrl+'login',loginForm.value,{headers: headers})
.subscribe(response => {
if (response.json().error_code === 0) {
console.log('success');
} else {
console.log('fail');
}
}).catch((err)=>{console.log(err)});