2017-12-11 20 views
0

私は、HttpClientクラスを使用してバックエンドにPOST要求を行うAngular 5で認証サービスを作成しました。バックエンドは、JWTベアラトークンを送信することによって応答する。HttpClientを使用してAngular 5で応答ヘッダーにアクセスするにはどうすればよいですか?

私の要求は、次のようになります。

return this.http.post('http://127.0.0.1:8080/api/v1/login', { 
    'username': username, 
    'password': password 
}, { 
    headers: new HttpHeaders() 
    .set('Content-Type', 'application/json') 
}) 
    .toPromise() 
    .then(response => { 
    console.log(response); 
    return response; 
    }); 

}

はどのようにして、応答の許可ヘッダーにアクセスできますか?

上記のようにコンソールに応答を書き込むと、「null」と表示されます。私は、トラフィックを捕捉してバックエンドに実際にベアラトークンを送信しているので、エラーがバックエンドにないことを知っています。

ご協力いただきありがとうございます。

答えて

2

レスポンスの本体だけでなく、完全なレスポンスにアクセスするには、httpリクエストでobserve: 'response'パラメータオプションを渡す必要があります。今、あなたはres.headers

return this.http.post('http://127.0.0.1:8080/api/v1/login', { 
     'username': username, 
     'password': password 
    }, { 
     headers: new HttpHeaders() 
      .set('Content-Type', 'application/json'), 
     observe: 'response' 
    }) 
    .map(res => { 
     let myHeader = res.headers.get('my-header'); 
    }); 

Docs

とヘッダにアクセスすることができます
関連する問題