首页 > 解决方案 > Redux Toolkit - GET 永远不会被调用,OPTIONS 永远不会返回

问题描述

我正在转换我的应用程序以使用新的 React Redux Toolkit,但是当我尝试调用 GET 函数时遇到了问题。OPTIONS 调用已启动,但从未调用 GET。我想不出为什么 thunk 会部分运行的任何原因。代码结构一直在使用较旧的 Redux 设置,所以基本上我从工作变为不工作的唯一改变是使用工具包,特别是createAsyncThunk().

在我的登录页面组件的mapDispatchToProps...

 fetchProfile: email => dispatch(fetchProfileAction({id:email})),

设置我的asyncThunk...

export const fetchProfileAction = createAsyncThunk(
  'profile/fetchProfile',
  async (params, thunkAPI) => {
    const response = await api.userApi.fetchProfile(params);
    return response.data;
  }
);

API调用...

fetchProfile: (params) => axios.get(authEndpointUrl(`users/${params.id}`)).then(response => response.data),

和日志语句。OPTIONS 没有标头或 Cookie... 在此处输入图像描述

标签: reactjsreduxredux-thunkredux-toolkit

解决方案


您很可能在违反 CORS 策略的同时尝试从另一个域中获取某些内容。检查浏览器的控制台,您可能会在此处找到有关损坏 CORS 策略的警告,如果是这样,您应该联系 API 管理员并要求他修复其标头(这是后端问题)。

Axios 正在调用OPTIONS以检查给定 URL 可用的方法,此时OPTIONS标头被 CORS 阻止,或者它们返回GET/POST不可用的信息,因此 axios 甚至不会尝试调用端点。


推荐阅读