angular - 如何为从 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"
}
它有效,它保存到本地存储,但这个错误一直在我的控制台中弹出?为什么?
解决方案
您收到错误是因为打字稿无法解析响应对象的类型,因此您需要指定发布请求的响应对象类型:
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);
}
)
}
推荐阅读
- python - 为什么最高 FFT 峰值不是音调的基频?
- c# - 在多个表单上选择和保存您自己的热键
- c# - 在第三方托管中发布的 MVC 项目 - 引发错误
- firebase - GitlabCI:身份验证失败,您是否运行了 firebase 登录?
- php - 周一到周日的营业时间数组,从今天开始排序而不是周一
- swift - 是否可以将代码语句与 @_functionBuilder 元素混合使用?
- python - Pygame Platformer 2D 中的敌人移动
- ios - Swift - StackView 和添加约束,以编程方式添加视图到堆栈 - 加载后调整单元格高度?
- java - NetBeans 中带有 JDBC 的 JavaFX 应用程序无法启动
- c# - 在 Unity 中更改场景时复制音频文件