如何检查状态以响应HTTP调用

时间:2019-01-25 08:53:04

标签: javascript angular

如果状态码为200或响应为true,我正在尝试导航至下一页。但是在response.status中变得不确定。如果我只记录响应,我会得到

{success: true, message: "login successful"}

以下代码在控制台日志中变得未定义。我是Angular的初学者,不使用任何服务。

goToHome() {
    console.log(this.login);
    this.Http.post('http://localhost:3000/users/login', this.login).subscribe((response: Response) => {
      console.log(response.status);
      // if (resp.status === 200) {
      //   this.navCtrl.push(TabsPage);
      // } else {
      //   const toast = this.toastController.create({
      //     message: 'User not found please try again',
      //     duration: 2000
      //   });
      //   toast.present();
      // }
    })
  }

2 个答案:

答案 0 :(得分:4)

您应该使用observe选项({observe: 'response'})来获得包含响应状态代码的完整响应:

goToHome() {
    this.Http.post('http://localhost:3000/users/login', this.login, {observe: 'response'})
        .subscribe((response) => {
            console.log(response.status);
        })
}

答案 1 :(得分:4)

您应该在请求中添加选项,并将student_id设置为读取完整的响应。

observe: 'response'

文档中的更多信息:Reading the full response