[英]Cant get headers of response in angular 5
我向服務器發出一個 post 請求,該請求響應兩個對客戶端很重要的標頭:用戶名和訪問令牌。 Chrome 調試工具的網絡選項卡顯示以下響應數據:
這里沒有標題 - 為什么會這樣? 我的日志代碼:
this.usersService.registerNewUser(firstName, lastName, email, username, birthday, password).subscribe(
res => {
console.log(res);
},
err => {
console.log("Error" + JSON.stringify(err));
}
);
我想通過res.headers.username
訪問標題用戶名。
我的請求是這樣的:
this.http.post<string>(
"http://localhost:2002/users",
JSON.stringify({
firstName: firstName,
lastName: lastName,
email: email,
username: username,
birthday: birthday,
password: password
}),
{
observe: "response"
}
);
我做錯了什么?
除非后端允許,否則前端將無法訪問該標頭。
為此,您需要從后端發送一個Access-Control-Expose-Headers
標頭,該值應該是要公開的值的逗號分隔列表,即access-token, username
通常,響應只是“正文”,而您需要“標題”。 在資源上你可以使用:
this.header = res.headers.get('header-name');
只是想提供額外的信息。 昨天花了幾個小時,變得瘋狂。
一旦您從后端access-control-expose-headers
。 如果你只是打印像這樣的console.log(res)
或console.log(res.headers)
這樣的響應對象,它不會顯示標題,因為 Angular 使用延遲加載。 您需要明確說明您需要哪個標題console.log(res.headers.get('your-header'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.