我对后端有以下请求:
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-身份验证令牌"。如何确保设置标头?
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);
});
}
更新代码以确保标头后的 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;
});
};
我有同样的问题,但我使用的是 Ionic 3。 这实际上是由于JS代码的异步方式而发生的。 我从其他堆栈溢出问题中找到了答案,这将帮助您解决此问题。
https://stackoverflow.com/a/45298747/2036977