gpt4 book ai didi

reactjs - 使用 catch 在 redux-saga 中处理 Rest API axios 错误

转载 作者:行者123 更新时间:2023-12-03 07:42:57 25 4
gpt4 key购买 nike

在 Chrome 中检查。在网络中我得到响应

{"status":"error","data":{"message":"Unauthorized"}} 

捕获 axios 错误有什么问题吗?我应该如何处理这个问题。我在授权登录时获得成功响应。


Redux-Saga 生成器函数


export function* loginUserSaga(action) {
yield put(actions.loginStart());
const loginData = {
'email': action.email,
'password': action.password
};
let url ="api/v1/login";
console.log("Saga-send:",loginData);
try {
const response = yield axios.post(url, loginData);
console.log("Saga-recived:",response);
yield localStorage.setItem("token", response.data.data.access_token);
yield put(
actions.loginSuccess(response.data.idToken)
);
} catch (error) {
console.log("Saga-error:",error);
yield put(actions.loginFail(error));
}
}

控制台


Saga-send: {email: "123456@gmail.com", password: "assasaassasa"} 
Saga-error: Error: Request failed with status code 401
at createError (createError.js:17)
at settle (settle.js:19)
at XMLHttpRequest.handleLoad (xhr.js:60)

在 axios.post() 上也出现错误

最佳答案

import Api from './path/to/api'
import { call, put } from 'redux-saga/effects'

function fetchProductsApi() {
return Api.fetch('/products')
.then(response => ({ response }))
.catch(error => ({ error }))
}

function* fetchProducts() {
const { response, error } = yield call(fetchProductsApi)
if (response)
yield put({ type: 'PRODUCTS_RECEIVED', products: response })
else
yield put({ type: 'PRODUCTS_REQUEST_FAILED', error })
}

这是 Documentation

关于reactjs - 使用 catch 在 redux-saga 中处理 Rest API axios 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57694136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com