在请求封装的代码位置其实拿到了返回信息,但是返回给接口调用位置的时候就怎么都拿不到,找了很久最后加了一个新的请求封装拿到了。
原来报错的代码:(其实其它接口调用的没有问题,只有一个接口会报这个错,就很奇怪)
service.interceptors.response.use(
(response) => {
if (response.status !== 200) {
router.replace({
path: "/",
});
} else {
// 后端返回code不为200的报错提示
if (response.data.code && response.data.code !== 200) {
Toast(response.data.msg);
}
}
return Promise.resolve(response);
},
(error) => {
router.replace({
path: "/error",
});
}
);
新加的封装:
service.interceptors.response.use(
(response) => {
const res = response.data ?? response;
if (response.status !== 200) {
return Promise.reject(new Error("Error"));
} else {
sessionStorage.setItem("authenticator", response.headers.authenticator);
return res;
}
},
(error) => {
if (error.response.status === 401) {
router.replace({
path: "/",
});
} else {
console.log("err" + error); // for debug
return Promise.reject(error);
}
}
);