headers

headers 是一個非同步函式,可讓您從伺服器元件 (Server Component) 讀取 HTTP 傳入請求的標頭。

import { headers } from 'next/headers'

export default async function Page() {
  const headersList = await headers()
  const userAgent = headersList.get('user-agent')
}

參考

參數

headers 不接受任何參數。

回傳值

headers 回傳一個唯讀Web Headers 物件。

須知事項

  • headers 是一個非同步函式,會回傳一個 promise。您必須使用 async/await 或 React 的 use 函式。
    • 在版本 14 及更早之前,headers 是一個同步函式。為了向後兼容,您仍可在 Next.js 15 中以同步方式存取它,但此行為將在未來被棄用。
  • 由於 headers 是唯讀的,您無法 setdelete 傳出請求的標頭。
  • headers 是一個動態 API (Dynamic API),其回傳值無法預先得知。使用它會使路由選擇**動態渲染 (dynamic rendering)**。

範例

使用 Authorization 標頭

app/page.js
import { headers } from 'next/headers'

export default async function Page() {
  const authorization = (await headers()).get('authorization')
  const res = await fetch('...', {
    headers: { authorization }, // 轉發 authorization 標頭
  })
  const user = await res.json()

  return <h1>{user.name}</h1>
}

版本歷史

版本變更
v15.0.0-RCheaders 現在是一個非同步函式。提供了一個 codemod 供使用。
v13.0.0引入 headers

On this page