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

RTK Query不跟随重定向问题:隧道请求返回303状态码

问题分析与修复方案

开发环境通过隧道转发请求到认证提供商API时,Axios请求返回200正常,但迁移到RTK Query的API切片后,使用hooks调用却得到303状态码,即使已在base query中配置redirect: 'follow'仍未解决。

可能的原因及修复步骤

  1. 显式传递redirect配置到请求
    当使用fetchWithBQ发送完整URL的请求时,baseQuery中的redirect配置可能未被自动继承。需要在每个请求中显式指定该选项:

    if (arg.flowId) {
        result = await fetchWithBQ({
            url: `${oryBaseUrl}/self-service/settings/flows/?id=${arg.flowId}`,
            redirect: 'follow',
            credentials: 'include'
        })
    } else {
        result = await fetchWithBQ({
            url: `${oryBaseUrl}/self-service/settings/browser`,
            redirect: 'follow',
            credentials: 'include'
        })
    }
    
  2. 修正queryFn的返回结构
    当前代码将整个fetch结果对象作为返回数据,不符合RTK Query的预期格式,可能引发内部处理异常。应直接返回响应体数据:

    return result.error ? { error: result.error } : { data: result.data }
    
  3. 验证跨域凭证传递

    • 确保credentials: 'include'在所有请求中生效,包括fetchWithBQ的调用
    • 确认认证提供商API已配置Access-Control-Allow-Credentials: true,且Access-Control-Allow-Origin设置为前端页面的具体域名(不能是*)
  4. 排查303重定向目标
    在浏览器开发者工具的网络面板中查看303响应的Location头,确认重定向地址。若跳转到认证路由,需对比Axios和RTK请求的Cookie头,检查会话凭证是否正确携带。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:22:49