Skip to content

NextJS中文文档 - Headers

headers 是一个异步函数,允许你从服务器组件读取 HTTP 传入请求头。

tsx
import { headers } from 'next/headers'

export default async function Page() {
  const headersList = await headers()
  const userAgent = headersList.get('user-agent')
}
jsx
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,其返回值不能提前知道。在路由中使用它将使该路由选择**动态渲染**。

示例

使用 Authorization 标头

jsx
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.RCheaders 现在是一个异步函数。提供了一个 codemod
v13.0.0引入 headers

🎉有任何问题,欢迎联系我

WeChat QR Code
WeChat
QQ QR Code
QQ

赣ICP备2023003243号