Как проверить статус в ответе на HTTP-вызов - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь перейти на следующую страницу, если код состояния равен 200 или ответ верен. Но становится неопределенным в 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 голосов
/ 25 января 2019

Вы должны добавить опции к вашему запросу и установить observe: 'response', чтобы прочитать полный ответ.

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

Дополнительная информация в документации: Чтение полного ответа

0 голосов
/ 25 января 2019

Вы должны использовать опцию наблюдать ({observe: 'response'}), чтобы получить полный ответ, включающий код состояния ответа:

goToHome() {
    this.Http.post('http://localhost:3000/users/login', this.login, {observe: 'response'})
        .subscribe((response) => {
            console.log(response.status);
        })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...