1

I have the following request to my backend:

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;
};

Sometimes 'X-Auth-Token' isn't being set. How's it possible to make sure that the header is being set?

getToken() looks like this:

getToken() {
    return this.storage.get('token').then((value) => {
        return value;
    });
}

The method that calls loggedIn() looks like this:

checkIfLoggedIn() {
    this.user.loggedIn()
        .subscribe((res) => {
            console.log("LoginPage RETURN VALUE --------------- ", res);
        }, (err) => {
            console.log("LoginPage RETURN ERROR --------------- ", err);
        });
}
MatMat
  • 878
  • 3
  • 8
  • 24

2 Answers2

0

Update your code to ensure the api post after header had data

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;
    });

};
Nguyen Huynh
  • 523
  • 4
  • 6
0

i had same problem but i am using ionic 3. this is actually happens because of async manner of js code. i found answer from other stackoverflow question which will help you out to solve this problem.

https://stackoverflow.com/a/45298747/2036977

Vinay Pandya
  • 3,020
  • 2
  • 26
  • 42