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

React控制台出现非序列化值错误及POST 400错误,后端正常求定位

问题定位与解决

错误原因

这个警告是Redux Toolkit默认序列化检查机制触发的:Redux要求action对象的所有属性必须是可序列化类型(如字符串、数字、普通对象,不能是函数、Symbol这类)。你发起请求时,action的meta.arg.config里包含了axios内部的xhrAdapter函数(属于不可序列化的值),因此被检测到并抛出警告。另外控制台里的400状态码是请求本身的业务错误(后端返回400),和序列化警告是两个独立问题,但序列化警告是因为错误处理时把包含函数的请求配置带入了action。

解决方案

以下是几种可行的解决方式:

1. 忽略特定路径的序列化检查

在Redux的store配置中,修改serializableCheck选项,跳过meta.arg.config.adapter路径的检查:

import { configureStore } from '@reduxjs/toolkit';
import yourReducer from './reducers';

const store = configureStore({
  reducer: yourReducer,
  middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware({
      serializableCheck: {
        ignoredPaths: ['meta.arg.config.adapter'],
      },
    }),
});

2. 手动处理错误,避免传递不可序列化内容

在createAsyncThunk的异步函数里,用try/catch捕获错误,通过rejectWithValue仅返回可序列化的错误信息,不让默认错误处理把整个请求配置带入action:

export const runTask = createAsyncThunk(
  '[GET] dataGrid/runTask',
  async (params, { rejectWithValue }) => {
    try {
      const response = await getData(ENDPOINTS.run_task, params);
      return response.data;
    } catch (error) {
      return rejectWithValue({
        status: error.response?.status,
        message: error.response?.data?.message || error.message,
      });
    }
  }
);

3. 确保传入thunk的参数是可序列化的

如果是你传给thunk的参数里包含了带adapter函数的axios配置对象,不要直接传整个config,只传必要参数(如请求参数、headers),在thunk内部构建请求配置:

// 错误做法:传入带adapter的完整config
dispatch(runTask(axiosConfig));

// 正确做法:只传业务参数,在thunk内构建配置
dispatch(runTask({ taskId: 123 }));

// 对应thunk代码
export const runTask = createAsyncThunk(
  '[GET] dataGrid/runTask',
  async (params) => {
    const requestConfig = {
      headers: { "Content-Type": "application/x-www-form-urlencoded" },
    };
    const response = await getData(`${ENDPOINTS.run_task}/${params.taskId}`, requestConfig);
    return response.data;
  }
);

关于400状态码错误

这是后端返回的请求错误,你可以在浏览器Network面板查看该请求的响应内容,确认后端返回的具体错误信息(如参数错误、权限问题等),再针对性调整请求参数或后端逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:30:50