headers
headers
は、Server ComponentからHTTPの受信リクエストヘッダーを読み取るための非同期関数です。
- TypeScript
- JavaScript
app/page.tsx
import { headers } from 'next/headers'
export default async function Page() {
const headersList = await headers()
const userAgent = headersList.get('user-agent')
}
app/page.js
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
オブジェクト内のヘッダーのすべての値の文字列
シーケンスを返します。Headers.has()
:Headers
オブジェクトが特定のヘッダーを含んでいるかどうかを示すブール値を返します。Headers.keys()
: このオブジェクトに含まれるキー/値ペアのすべてのキーを通過することを可能にするイテレータ
を返します。Headers.values()
: このオブジェクトに含まれるキー/値ペアのすべての値を通過することを可能にするイテレータ
を返します。
Good to know
headers
は非同期関数であり、Promiseを返します。async/await
またはReactのuse
関数を使用する必要があります。- バージョン14以前では、
headers
は同期関数でした。後方互換性を助けるために、Next.js 15では同期的にアクセスすることも可能ですが、この動作は将来的に廃止される予定です。
- バージョン14以前では、
headers
は読み取り専用であるため、送信リクエストヘッダーをset
またはdelete
することはできません。headers
は、事前に返される値を知ることができない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-RC | headers は現在非同期関数です。codemodが利用可能です。 |
v13.0.0 | headers が導入されました。 |