headers

headers هي وظيفة غير متزامنة (async) تتيح لك قراءة رؤوس طلب HTTP الواردة من مكون الخادم (Server Component).

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(): تُرجع iterator يسمح بالمرور عبر جميع أزواج المفتاح/القيمة الموجودة في هذا الكائن.
  • Headers.forEach(): تنفذ دالة معينة مرة واحدة لكل زوج مفتاح/قيمة في كائن Headers هذا.
  • Headers.get(): تُرجع سلسلة نصية String تحتوي على جميع قيم رأس معين داخل كائن Headers.
  • Headers.has(): تُرجع قيمة منطقية تشير إلى ما إذا كان كائن Headers يحتوي على رأس معين.
  • Headers.keys(): تُرجع iterator يسمح بالمرور عبر جميع مفاتيح أزواج المفتاح/القيمة في هذا الكائن.
  • Headers.values(): تُرجع iterator يسمح بالمرور عبر جميع قيم أزواج المفتاح/القيمة في هذا الكائن.

معلومات مفيدة

  • headers هي وظيفة غير متزامنة (async) تُرجع promise. يجب استخدام async/await أو دالة use في React.
    • في الإصدار 14 وما قبله، كانت headers وظيفة متزامنة. لدعم التوافق مع الإصدارات السابقة، لا يزال يمكن الوصول إليها بشكل متزامن في Next.js 15، ولكن هذا السلوك سيتم إهماله في المستقبل.
  • نظرًا لأن 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.