reactjs - 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),
解决方案
您很可能在违反 CORS 策略的同时尝试从另一个域中获取某些内容。检查浏览器的控制台,您可能会在此处找到有关损坏 CORS 策略的警告,如果是这样,您应该联系 API 管理员并要求他修复其标头(这是后端问题)。
Axios 正在调用OPTIONS
以检查给定 URL 可用的方法,此时OPTIONS
标头被 CORS 阻止,或者它们返回GET
/POST
不可用的信息,因此 axios 甚至不会尝试调用端点。
推荐阅读
- neo4j - 将 Neo4J 数据库从 GrapheneDB 导入到本地
- angular - skiplocationchange 浏览器向后问题。如何重定向到正确的路径
- github - 在 Jekyll GitHub 上更改 logo.svg 文件(减小像素大小似乎没有改变)
- pdf - 如何在 Erlang 中将 PDF 转换为 PDF/A?
- python - 如何使用硒单击/查找按钮
- kubernetes - 为什么 kubernetes 部署需要选择器标签?
- c - 如何在 C 中找到 printf 的源代码?
- swift - 通过 URL 方案检测哪个应用程序要打开我的应用程序
- c++ - 我是在删除一个对象,还是只是它的指针
- java - 在android测试中,当使用意图打开另一个应用程序时,如何返回我的应用程序并继续以后的测试