headers

headers 函数允许您从 服务端组件 (Server Component) 中读取 HTTP 传入请求的标头。

headers()

此 API 扩展了 Web Headers API。它是只读的,意味着您无法 set / delete 传出请求的标头。

import { headers } from 'next/headers'

export default function Page() {
  const headersList = headers()
  const referer = headersList.get('referer')

  return <div>Referer: {referer}</div>
}

须知:

API 参考

const headersList = headers()

参数

headers 不接收任何参数。

返回值

headers 返回一个只读Web Headers 对象。

示例

与数据获取结合使用

headers() 可以与 Suspense 数据获取 (Suspense for Data Fetching) 结合使用。

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

async function getUser() {
  const headersInstance = headers()
  const authorization = headersInstance.get('authorization')
  // 转发授权标头
  const res = await fetch('...', {
    headers: { authorization },
  })
  return res.json()
}

export default async function UserPage() {
  const user = await getUser()
  return <h1>{user.name}</h1>
}

版本历史

版本变更
v13.0.0引入 headers 函数。

On this page