【发布时间】:2018-10-25 05:28:33
【问题描述】:
我想处理一个令牌。但是得到消息:
“Promise”类型上不存在属性“token”
我有以下代码。我得到一个带有属性令牌的 json。顺便说一句,我是由使用 Angular 2 的教程指导的。我已经在没有 ['token'] 的情况下尝试过它。但没有成功。我也有帖子的界面,但我没有使用它来消除错误。它也不适用于界面。
这是我的代码:
signin(email: string, password: string) {
return this.http.post<any>('http://127.0.0.1:8000/api/userLogin',
{ email: email, password: password },
this.httpOptions).map((response: Response) => {
const token = response.json()['token'];
const base64Url = token.split('.')[1];
const base64 = base64Url.replace('-', '+').replace('_', '/');
return JSON.parse(window.atob(base64));
});
}
教程:
https://www.youtube.com/watch?v=pT9_FngJuzY&t=321s
顺便说一句,在这种情况下,我使用 laravel / passport。
success:
{token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjllOW…lsJiIWVmiiNY1Ft02MSWGS-Thx7_warYrUucP8bPHHnyMCfnU"}
【问题讨论】:
-
应该是Response.token
-
您的 API 响应是什么?
-
你在哪里打电话和订阅登录?你试过
response.json().token;吗? -
@Helge,
success是否包含在回复中? API 的响应是这样的 ->success: {token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjllOW…lsJiIWVmiiNY1Ft02MSWGS-Thx7_warYrUucP8bPHHnyMCfnU"}? -
你在某处订阅了吗?