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

Redux Toolkit Query期望什么响应格式?如何避免解析错误

问题描述

编写的代码如下:

import { useGetPostQuery } from "./store/postApi";
export function App() {
  const { data, isLoading, isFetching, isError, error } = useGetPostQuery(1);
  if (isError)
    return (
      <div>
        {error.status}
        <br />
        {error.data}
      </div>
    );
  if (isLoading) return <div>loading...</div>;
  return <div className={isFetching ? "posts--disabled" : ""}>{data}</div>;
}

运行后抛出错误:

PARSING_ERROR
HELLO WORLD

需求为从服务端直接返回字符串HELLO WORLD,需要找到避免该解析错误的方案。

错误原因

RTK Query 默认对所有接口响应执行 JSON 解析逻辑,当服务端直接返回纯文本内容、而非标准 JSON 格式数据时,JSON 解析流程失败,就会触发PARSING_ERROR报错。

修复方案

在定义对应 API 端点时,新增responseHandler配置,显式指定响应按纯文本格式解析即可,修改postApi中对应端点的定义:

// 原端点定义
getPost: builder.query({
  query: (id) => `/post/${id}`
})

// 修改后
getPost: builder.query({
  query: (id) => `/post/${id}`,
  // 声明响应按文本格式解析,跳过默认的JSON.parse流程
  responseHandler: (res) => res.text()
})

修改完成后,服务端返回的纯文本HELLO WORLD会被正确读取到data字段中,解析错误不会再出现。

内容的提问来源于stack exchange,提问作者Chong Lip Phang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:21:18