Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get value in Response header Angular2

Tags:

i want to get session token in response header(Set-Cookie).how can i access values in Response header ?

var headers = new Headers();             headers.append('Content-Type', 'application/json');             console.log('url',this.loginUrl)             this.http.post(this.loginUrl,                 JSON.stringify({ "username": value.username, "password": value.password }),                 { headers: headers })                 .map((res: Response) =>                      res.json())                 .subscribe((res) => {                     console.log("res", res);                     this.loading.hide();                     if (res.message_code == "SUCCESS") {                         this.nav.setRoot(HomePage, {                             username: value.username,                         });                     } else {                         let alert =  Alert.create({                             title: "Sign In Error !",                             subTitle: 'Please Check Username or Password.',                             buttons: ['Ok']                         });                         this.nav.present(alert);                     }                 }, err => {                     this.loading.hide();                     console.log('error', err);                  });  

this is my header response

enter image description here

like image 875
hash Avatar asked Apr 05 '16 10:04

hash


1 Answers

The problem is that you map your response to its json content. Headers can be reached from the response itself. So you need to remove the map operator:

this.http.post(this.loginUrl,        JSON.stringify({ "username": value.username, "password": value.password }),        { headers: headers })         /*.map((res: Response) =>  // <--------------                 res.json())*/        .subscribe((res) => {          var payload = res.json();          var headers = res.headers;           var setCookieHeader = headers.get('Set-Cookie')          (...)        }); 

Be careful with CORS with accessing the response headers. See this question:

  • angular2/http get location header of 201 response
like image 200
Thierry Templier Avatar answered Sep 19 '22 01:09

Thierry Templier