[英]Can't access property from POST response headers in Angular 4
我正在嘗試訪問從POST響應標頭收到的CSRF令牌,我需要將其與應用程序中的所有其他請求一起發送回去。 在訪問具有[csrfpreventionsalt“令牌的[[Entries]]之前,我可以深入研究響應流。 它會顯示在控制台中,但在嘗試訪問時會顯示為未定義。
經過嘗試和測試:我已經嘗試使用“ get”方法訪問標頭,但是它不起作用。
var csrf = res.headers.get('csrfpreventionsalt');
我在SO上看到了其他問題,這些問題說您無法訪問標頭值,但是如果可以在控制台中訪問標頭,則一定可以訪問令牌並將其分配給變量。
解決此問題的方法也可能對其他可能在其應用程序中遇到相同情況的人有所幫助。 歡迎任何幫助!
您需要映射您的響應以獲取類似的方法
this.http.get('…', { observe: 'response' });
按照新的httpclient的角度,如果您仍然對整個Response對象感興趣,則可以觀察它
請在這里檢查
您可以嘗試以下方法:
Map.forEach((value: boolean, key: string) => { console.log(key, value); });
我在調用json()方法之后調用了get方法,基本上我可以在原始響應對象中訪問它之后獲得csrf值,如下所示:
private extractLoginData = (res: Response) => {
this.csrfToken = res.headers.get('csrfPreventionSalt');
let body = res.json();
return body;
}
還要確保您已將服務的標題字段設置為Access-Control-Allow-Headers和Access-Control-Allow-Origin的“ *”。
還要添加“ Access-Control-Allow-Credentials:true”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.