useRequestFetch
Передача контекста запроса и заголовков при серверных вызовах fetch через композабл useRequestFetch.
Композабл useRequestFetch передаёт контекст запроса и заголовки при выполнении запросов fetch на сервере.
В браузере fetch сам подставляет нужные заголовки.
При запросе во время SSR по соображениям безопасности заголовки нужно передавать вручную.
Заголовки, которые не предназначены для пересылки, не попадут в запрос. К таким относятся, например:
transfer-encoding, connection, keep-alive, upgrade, expect, host, acceptКомпозабл
useFetch внутри использует useRequestFetch, чтобы автоматически передавать контекст и заголовки запроса.<script setup lang="ts">
// Заголовки клиента пересылаются в обработчик `/api/cookies`
// Результат: { cookies: { foo: 'bar' } }
const requestFetch = useRequestFetch()
const { data: forwarded } = await useAsyncData(() => requestFetch('/api/cookies'))
// Здесь заголовки не пересылаются
// Результат: { cookies: {} }
const { data: notForwarded } = await useAsyncData(() => $fetch('/api/cookies'))
</script>
export default defineEventHandler((event) => {
const cookies = parseCookies(event)
return { cookies }
})
В браузере при клиентской навигации
useRequestFetch ведёт себя так же, как обычный $fetch.