Javascript 无法将JSON对象返回给调用程序
我正在运行下面的代码,允许用户登录到系统。作为此功能的一部分,正在使用HTTP POST返回一个可观察的。因为这是使用JWT,所以我必须提取令牌中的值 我想以JSON格式将带有这些标记值的Observable返回给调用程序。我已尝试使用地图功能,如下所示:Javascript 无法将JSON对象返回给调用程序,javascript,json,angular,Javascript,Json,Angular,我正在运行下面的代码,允许用户登录到系统。作为此功能的一部分,正在使用HTTP POST返回一个可观察的。因为这是使用JWT,所以我必须提取令牌中的值 我想以JSON格式将带有这些标记值的Observable返回给调用程序。我已尝试使用地图功能,如下所示: adminLogin(username, password) { let url = `${this._apiRoot}/login`; let tokenResp = {}; this.h
adminLogin(username, password) {
let url = `${this._apiRoot}/login`;
let tokenResp = {};
this.http.post(url, JSON.stringify({ username: username, password: password }), { observe: 'response' })
.map(response => response.json())
.subscribe((response: HttpResponse<any>) => {
[ ... snip ...]
但我的经验是,订阅从未被呼叫过
我能做什么
短暂性脑缺血发作
原始代码
若你们想返回一个带有任何类型标记的observable,你们不能将subscribe方法参数类型设为HttpResponse 试试看
adminLogin(username, password) : Observable<JWT> //Assuming this is a type
this.http.post(url, JSON.stringify({ username: username, password: password }), { observe: 'response' })
.map((response: HttpResponse<any>) => {
let token = response.headers.get("Authorization");
if (token) {
let t = JWT(token);
return t;
}
return null; //Or error
},
//Error handling
谢谢你的回复。对于调用方法,类型“void”上不存在我获取的属性“subscribe”。这里发生了什么事?
adminLogin(username, password) : Observable<JWT> //Assuming this is a type
this.http.post(url, JSON.stringify({ username: username, password: password }), { observe: 'response' })
.map((response: HttpResponse<any>) => {
let token = response.headers.get("Authorization");
if (token) {
let t = JWT(token);
return t;
}
return null; //Or error
},
//Error handling
adminLogin(username,password).subscribe((token: JWT )=>
{
//use token
}