Angular 4如何读取标题中的标记?

时间:2018-02-13 18:20:23

标签: angular

我是棱角分明的新人。我无法读取REST服务响应头中的令牌(jwt)。我该如何阅读标题?这是我的代码:

    loginUser(loginUser:Login,callback: (data) => void){ 

        let body = JSON.stringify(loginUser)
        const headerJson = {
          'Content-Type': 'application/json'    
        }
        let options = { headers: new HttpHeaders( headerJson ) };
        return this.http.post(this.config.datiBean.urlLoginToken, body,options).subscribe(

          res =>{

            console.log("body :"+JSON.stringify(res)); //ok

            callback(res);
          }

          /// at this point how can I read headers?

        )};
}

我想阅读这些信息: enter image description here

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

我的方法很可能不正确。我用这种方式修改了我的方法:

    loginUser(loginUser:Login,callback: (data) => void){ 

       let creds = JSON.stringify(loginUser);
       let contentHeader = new HttpHeaders({ "Content-Type":"application/json" });
       this.http.post(this.config.datiBean.urlLoginToken, creds, { headers: contentHeader, observe: 'response' })
        .subscribe(
        (resp) => {
            console.log("TOKEN:  "+resp.headers.get('X-Auth'))
            console.log("body:  "+JSON.stringify(resp.body))
            callback(resp)
        },
        (resp) => {
            console.log("resp-error");
            console.log(resp);
        }
      );
  };

现在它可以正常工作

答案 1 :(得分:0)

迭。

如果您正在使用NG4和现已弃用的http类,那么我认为您应该尝试收集订阅中的键和值。 https://v4.angular.io/api/http/Headers#values

但请注意,您只能使用公开的标头。您可以使用Access-Control-Expose-Headers添加列表。

res =>{
  console.log("body :"+JSON.stringify(res)); //ok
  callback(res);
  headerKeys = res.headers.keys(); // this will provide an array of strings for the exposed headers
}