簡體   English   中英

無法以角度 5 獲取響應標頭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM