You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redux Toolkit中如何在prepareHeaders方法内获取当前请求URL

fetchBaseQuery 传入的 prepareHeaders 回调实际支持第二个上下文参数,你可以从该参数中直接获取当前请求的 url,修改后的代码如下:

export const gatewayApi = createApi({
    reducerPath: 'gatewayApi',
    tagTypes: [
        'Country',
        'Users',
    ],
    baseQuery: fetchBaseQuery({
        baseUrl: '/api/',
        // 新增第二个参数获取请求上下文信息
        prepareHeaders: (headers, { url }) => {
            headers.set('content-type', 'application/json');
            const { auth } = JSON.parse(
                localStorage.getItem('user') || '{}',
            );

            const { accessToken } = JSON.parse(
                localStorage.getItem('token') || '{}',
            );

            // 直接从上下文取当前请求的url
            const queryUrl = url;

            if (isTokenAuth(queryUrl)) {
                headers.set('authorization', `${accessToken}`);
            } else if (auth) {
                headers.set('authorization', `${auth}`);
            }

            return headers;
        },
    }),
    endpoints: () => ({}),
});

第二个上下文参数除了url之外,还包含method(请求方法)、endpoint(当前请求对应的endpoint名称)、extra(调用接口时传入的额外自定义参数),可根据需求按需取用。

内容的提问来源于stack exchange,提问作者HasanG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:54:05