跳到內容

headers

headers 是一個非同步函式,它允許你從伺服器元件讀取傳入的 HTTP 請求頭。

app/page.tsx
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 是隻讀的,你不能設定刪除傳出的請求頭。
  • headers 是一個動態 API,其返回值無法提前得知。在其中使用它將使路由選擇動態渲染

示例

使用 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 }, // Forward the authorization header
  })
  const user = await res.json()
 
  return <h1>{user.name}</h1>
}

版本歷史

版本更改
v15.0.0-RCheaders 現在是一個非同步函式。一個程式碼轉換工具可用。
v13.0.0headers 已引入。