headers 是一个 异步 函数,允许你从 服务端组件 中读取 HTTP 传入请求头。
import { headers } from 'next/headers'
export default async function Page() {
const headersList = await headers()
const userAgent = headersList.get('user-agent')
}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.entries(): 返回一个 迭代器,允许遍历此对象中包含的所有键/值对。Headers.forEach(): 对该 Headers 对象中的每个键/值对执行一次提供的函数。Headers.get(): 返回 Headers 对象中给定名称的某个头的所有值的 String 序列。Headers.has(): 返回一个布尔值,表示 Headers 对象是否包含某个特定的头。Headers.keys(): 返回一个 迭代器,允许你遍历此对象中包含的所有键/值对的键。Headers.values(): 返回一个 迭代器,允许你遍历此对象中包含的所有键/值对的值。headers 是一个 异步 函数,返回一个 Promise。你必须使用 async/await 或 React 的 use 函数。
headers 是一个同步函数。为了帮助向后兼容,你仍然可以在 Next.js 15 中同步访问它,但此行为将来会被废弃。headers 是只读的,你不能 set 或 delete 传出请求头。headers 是一个 动态 API,其返回值无法提前得知。在路由中使用它,将使该路由选择 动态渲染。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-RC | headers 现在是一个异步函数。提供了一个 codemod。 |
v13.0.0 | headers 引入。 |