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

Redux Toolkit配置端点以处理非JSON字符串响应的问题

Redux Toolkit配置端点以处理非JSON字符串响应的问题

嗨,这个问题我之前也碰到过!根源在于RTK Query的fetchBaseQuery默认会把后端返回的响应当作JSON来解析,但你的user/whoAmI接口返回的是纯字符串格式的GUID,不是标准JSON,所以才会抛出解析错误。

给你两种简单的解决方法,按需选择就行:

方法一:给单个端点配置文本响应处理

直接在whoAmI的query配置里加上responseHandler: "text",明确告诉RTK Query这个接口返回的是纯文本,不要自动解析JSON:

whoAmI: builder.mutation<string, void>({
  query(){
    return {
      url: "user/whoAmI",
      method: "GET",
      responseHandler: "text" // 这行是关键配置
    }
  }
})

配置完之后,RTK Query就会直接把接口返回的GUID字符串返回给你,刚好匹配你定义的string类型返回值,完美解决解析错误。

方法二:结合transformResponse做额外处理

如果需要对返回的字符串做一些小处理(比如去掉首尾的空格),可以再加上transformResponse来实现自定义逻辑:

whoAmI: builder.mutation<string, void>({
  query(){
    return {
      url: "user/whoAmI",
      method: "GET",
      responseHandler: "text"
    }
  },
  transformResponse: (response: string) => {
    // 这里可以添加自定义处理逻辑,比如去除空格
    return response.trim();
  }
})

如果不是大部分接口都返回纯文本,不建议修改全局的baseQuery默认行为,针对性配置单个端点更灵活。

备注:内容来源于stack exchange,提问作者Eduardo Wada

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 08:59:52