javascript - 钩子(Hook)中的 SvelteKit externalFetch 函数永远不会被调用

标签 javascript svelte sveltekit

我正在尝试修改外部 API 的获取请求以包含自定义 header 。在尝试了多种方法之后,我在文档中看到 externalFetch 似乎可以用于修改请求,但问题是它永远不会被调用。我错过了什么?

export async function externalFetch(request) {
    request.headers['authorization'] = 'HMAC 12.33';
    console.log('hook headers', request);
    request = new Request(
        request
    );

    return fetch(request);
}

最佳答案

您必须使用fetch sveltekit 通过 load 为您提供的功能函数以便触发 externalFetch,以下是 sveltekit 文档中的示例:

<!-- src/routes/blog/[slug].svelte -->
<script context="module">
    /** @type {import('@sveltejs/kit').Load} */
    export async function load({ params, fetch, session, stuff }) {
        const response = await fetch(`https://cms.example.com/article/${params.slug}.json`);

    return {
        status: response.status,
        props: {
            article: response.ok && (await response.json())
            }
        };
    }
</script>

关于javascript - 钩子(Hook)中的 SvelteKit externalFetch 函数永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69676914/

相关文章:

navigation - SvelteKit 中的嵌套路由

javascript - 阻止用户登录后导航到某些网址 - angular-ui-router

javascript - 当 GraphQL 值可能为空时将其与 React 一起使用

javascript - 捆绑 Bootstrap 4 - Bootstrap 工具提示需要 Tether

svelte - 如何在 Svelte 组件中每次 prop 更改时发出获取请求?

javascript - 如何在不与 svelte 中的编译器对抗的情况下避免循环依赖?

Javascript - 用空值初始化数组

svelte - 如何在开发模式下代理 Svelte-kit

express - 如何将 ExpressJS 后端连接到 SvelteKit 前端?

javascript - 单击 svelte 关闭其他下拉菜单