[Fixed] Set response header along with a string


I am trying to send the token in the headers of an HTTP request from backend to the frontend along with sending my own defined string. However, I am getting an issue. The token is being printed as null on the client-side. I don’t know why:

Here’s my code:


if (bcrypt.compareSync(passcode, results[0].password))
     const token = jwt.sign({id: email}, secret, {expiresIn: 86400 });
     if(results[0].userrights == 'full')
          res.setHeader('x-access-token', token);
          res.send("Full Authorization");

    //rest of the code


this.http.post('http://localhost:3000/api/login', form.value, {responseType: "text", observe: 
  .subscribe(responseData => {
    console.log(responseData.headers.get('x-access-token'));  //prints null on the console

I have searched quite a bit and found different examples which is making it very confusing. I don’t want to use response status rather my own defined string. I have tried different things to print the variable but it still is throwing as null.


If you are using a browser extension to allow CORS requests then Access-Control-Expose-Headers should be added to the headers on server side. Please try adding the following line: res.setHeader('Access-Control-Expose-Headers', '*')

Angular2 's Http.post is not returning headers in the response of a POST method invocation


Leave a Reply

(*) Required, Your email will not be published