useRequestFetch
使用 useRequestFetch 可组合项,转发用于服务器端 fetch 请求的请求上下文和头部。
您可以使用 useRequestFetch
在进行服务器端 fetch 请求时转发请求上下文和头部。
当进行客户端 fetch 请求时,浏览器会自动发送必要的头部。然而,在服务器端渲染期间进行请求时,出于安全考虑,我们需要手动转发头部。
不应转发的头部将不会包含在请求中。这些头部包括,例如:
transfer-encoding
、connection
、keep-alive
、upgrade
、expect
、host
、accept
useFetch
可组合项在底层使用 useRequestFetch
自动转发请求上下文和头部。<script setup lang="ts">
// This will forward the user's headers to the `/api/cookies` event handler
// Result: { cookies: { foo: 'bar' } }
const requestFetch = useRequestFetch()
const { data: forwarded } = await useAsyncData(() => requestFetch('/api/cookies'))
// This will NOT forward anything
// Result: { cookies: {} }
const { data: notForwarded } = await useAsyncData(() => $fetch('/api/cookies'))
</script>
export default defineEventHandler((event) => {
const cookies = parseCookies(event)
return { cookies }
})
在浏览器中的客户端导航期间,
useRequestFetch
的行为将与常规的 $fetch
相同。