我向我的后端发出以下请求:
loggedIn() {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
this.getToken().then((val) => {
headers.append('X-Auth-Token', val);
});
const options = new RequestOptions({headers: headers});
let seq = this.api.post('/login', null, options).share();
seq.map((res: Response) => res.json())
.subscribe(res => {
}, err => {
console.log("HEADERS ------- ", options.headers);
});
return seq;
};
有时'X-Auth-Token'未被设置。怎样才能确保标题被设置?
getToken()看起来像这样:
getToken() {
return this.storage.get('token').then((value) => {
return value;
});
}
调用loggedIn()的方法如下所示:
checkIfLoggedIn() {
this.user.loggedIn()
.subscribe((res) => {
console.log("LoginPage RETURN VALUE --------------- ", res);
}, (err) => {
console.log("LoginPage RETURN ERROR --------------- ", err);
});
}
答案 0 :(得分:0)
更新您的代码以确保标头有数据后的api帖子
loggedIn() {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
this.getToken().then((val) => {
headers.append('X-Auth-Token', val);
const options = new RequestOptions({headers: headers});
let seq = this.api.post('/login', null, options).share();
seq.map((res: Response) => res.json())
.subscribe(res => {
}, err => {
console.log("HEADERS ------- ", options.headers);
});
return seq;
});
};
答案 1 :(得分:0)
我有同样的问题,但我正在使用离子3.这实际上是因为js代码的异步方式。我从其他stackoverflow问题中找到答案,这将帮助您解决这个问题。