首页 > 解决方案 > 如何为从 Angular HTTP 请求接收的数据设置类型?

问题描述

这是我获取数据的代码:

login() {
    const url = api + 'login';
    this.http.post(url, this.userModel)
      .subscribe(
        data => {
          localStorage.token = data.token;
          this.router.navigate(['/home']);
        },
        error => {
          alert(error.error.error);
        }
      )
  }

这将返回一个 JSON

{
   message: "logged In Successful!",
   token: "e4affa4633fb046333731ae6fadcb980b98636b513a0fb80721759267b4efa5c9b7845663f2b1288"
}

它有效,它保存到本地存储,但这个错误一直在我的控制台中弹出?为什么?

在此处输入图像描述

标签: angulartypescript

解决方案


您收到错误是因为打字稿无法解析响应对象的类型,因此您需要指定发布请求的响应对象类型:

  login() {
    const url = api + 'login';
    this.http.post<{ message: string, token: string }>(url, this.userModel)
      .subscribe(
        data => {
          localStorage.token = data.token;
          this.router.navigate(['/home']);
        },
        error => {
          alert(error.error.error);
        }
      )
  }

推荐阅读