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

如何将RTK Query自动生成的requestId作为x-request-id请求头发送?

获取RTK Query的requestId并携带到请求头

你当前的思路是对的,RTK Query会自动为每个请求生成requestId,且可以在prepareHeaders中直接获取并设置到请求头里。不过你的代码有个小疏漏——prepareHeaders函数必须返回修改后的headers,否则设置不会生效。

修正后的代码

export const api = createApi({
    reducerPath: 'api',
    baseQuery: fetchBaseQuery({
        baseUrl: 'http://localhost:9000',
        prepareHeaders: (headers, { requestId }) => {
            headers.set('x-request-id', requestId);
            // 务必返回修改后的headers对象
            return headers;
        },
    }),
    endpoints: (builder) => ({
        getPage: builder.query<PageResponse, PageRequest>({
            query: (pageRequest) => {
                return {
                    url: '/api/4/page/fetch',
                    body: pageRequest,
                    method: 'POST',
                };
            },
        }),
    })
});

额外:在组件中获取requestId

如果需要在组件层面拿到这个requestId(比如用于日志、后续关联请求等),可以直接从useGetPageQuery的返回值中获取:

const { data, error, requestId } = useGetPageQuery(你的请求参数);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:12:56