MirageJs:不能使用axios,如果我调用api与直通



我有一个应用程序在反应与切片和坦克。我使用@reduxjs/toolkit,并使用"createSlice"使用"createAsyncThunk"。

我铛:

export const loginThunk = createAsyncThunk('login/local', async (loginData: LoginData) => {
const {username, password} = loginData;

const l = await axios.post(`${BASE_URL}_login/local`, {username, password}, {
headers: {'Content-Type': 'application/json'}
})
return l.data;
})

在我的应用程序中运行一个带有模拟api和"passthrough"在我真正的服务器。

当我调度"login "然后,它会运行"loginthunk .pending"我的减速机和停止。

永远不会实现或拒绝。

如果我调度loginThunk"在没有幻影服务器运行的情况下,它可以工作。

如果我调度loginThunk"认为,没有海市蜃楼服务器运行,但我使用"fetch"相反,axios,它工作。

axios和mirageJs的直通似乎有问题。

有什么想法?

Thank you so much

问题源于axios 0.21.2中更改的xhr适配器。处理程序request.onreadystatechange不再添加到请求中(XMLHttpRequest似乎在启动mirageJS服务器时被重新定义)。

解决方案是创建自己的适配器-基本上复制lib/adapters/xhr.js并确保if语句的else分支通过-并在您的axios配置中使用它。

我修复了将axios降级为0.21.0并与miragejs一起工作的问题:0.1.41,0.1.42.0,0.1.43.0

最新更新