我的本机应用程序中axios出现问题。 错误消息在此处提供Pic1 Pic2 Actions.start()永远不会运行。
编辑1: 这是完整的代码。 编辑2: 错误消息的图片Pic3 至于结果const res = await ...应该是问题所在。 必须添加更多详细信息,否则我无法更新此问题;)
export const apiPostLogin = (
accountData
) => async dispatch => {
dispatch(setFetching(true));
try {
var instance = axios.create({
baseURL: 'https://api.xxxx.de/',
timeout: 1000
});
const res = await axios.post('/api/v1/auth/login', accountData);
Actions.Start();
dispatch(setAuthToken(res.data.token));
await dispatch(apiGetAccount(res.data.token));
console.log(res);
} catch (error) {
console.log(error.response);
dispatch(setFetching(false));
if (error.response.status === 401) {
dispatch(
setApiResponse({
apiResponse: true,
didShowResponse: false,
apiResponseError: true,
apiResponseCode: 401,
apiResponseMessage: 'E-Mail und Passwort stimmen nicht überein'
})
);
} else if (error.response.status === 417) {
dispatch(
setApiResponse({
apiResponse: true,
didShowResponse: false,
apiResponseError: true,
apiResponseCode: 417,
apiResponseMessage: 'Du hast Deine E-Mail noch nicht bestätigt'
})
);
} else {
dispatch(
setApiResponse({
apiResponse: true,
didShowResponse: false,
apiResponseError: true,
apiResponseCode: 499,
apiResponseMessage:
'Du kannst Dich im Moment nicht bei uns anmelden. Wir befinden uns im Wartungsmodus'
})
);
}
}
};
答案 0 :(得分:0)
将post
调用包装在try catch(catch对于处理被拒绝的诺言至关重要)块中。您的网络请求失败。您需要捕获错误/处理承诺拒绝
try {
const res = await axios.post('/api/v1/auth/login', accountData);
console.log('Success!');
console.log(res.status);
console.log(res.data);
} catch (e) {
console.error('Failure!');
console.error(e.response.status);
throw new Error(e);
}
Actions.Start();
或
尝试使用axios()
代替axios.create()
return axios.({
method: 'post',
baseURL: userEndpoint,
headers: {
common: {
Accept: 'application/json',
}
}
}).then(...).catch(...);