gpt4 book ai didi

reactjs - 无法在 react js axios 中获取响应代码

转载 作者:行者123 更新时间:2023-12-04 17:11:26 25 4
gpt4 key购买 nike

以下是我常用的发帖方法:

export const post = (url: string, param: any) => {
const CancelToken = axios.CancelToken; // axios cancel request
const source = CancelToken.source();
post.prototype.source = source;
return axios.post(url, qs.stringify(param), { cancelToken:
source.token }).then((resp) => resp);
};
这是我的post方法:
const postMyMethod = async () => {
await postMd(params)
.then((response: any) => {
console.log(response) // in response not getting status code
})
};
以下是错误处理代码,如何获取响应状态代码(例如:200、400...):
axios.interceptors.response.use(
function (response) {
if (response && response.data && response.data.Code && response.data.Message) {
message.error(response.data.Message);
response.data = null;
}
return response;
},
function (error) {
if (error.response && error.response.data && error.response.data.Code && error.response.data.Message) {
message.error(error.response.data.Message);
} else {
message.error('Unknown error, please check your network ~');
}
return error;
}
);
最后,如果我这样做:
console.log(response)
获取: Error: Request failed with status code 400如何获取状态代码以在 postMyMethod() 中执行 if 条件?
我想在 postMyMethod() 中这样做。如何实现这一目标?
if(response.status === 200){
// do something
}
if (respone.status === 400){
// do something
}

最佳答案

错误是因为您没有使用 catch()阻止您的 postMyMethod功能。您应该添加它,以便它处理任何错误响应。它看起来像这样:

const postMyMethod = async () => {
await postMd(params)
.then((response) => {
console.log(response)
}).catch((err) => {
console.log(err.response.statuscode);
});
};
如果响应代码 400 是您希望在函数中以不同方式处理的特定内容,则您的 catch()块将是:
const postMyMethod = async () => {
await postMd(params)
.then((response) => {
console.log(response)
}).catch((err) => {
if (err.response.statuscode == 400) {
console.log(err);
} else {
console.log("something else");
}
});
};
您可以阅读有关 catch() 的更多信息方法 here .

关于reactjs - 无法在 react js axios 中获取响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69340753/

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