vue 如何获取后端返回来的code?

vue 如何获取后端返回来的code?
service请求拦截

http.interceptors.response.use(

(response) => {

const { data: { data, code, status, error = {} } = {} } = response;

if (code === 'REL001') {

return Promise.reject(error.code);

}

if (!status) {

const msg = error.msg || '服务端执行出错!';

Message.error(msg);

return Promise.reject(msg);

}

return data || {};

},

(error) => {

if (error.response) {

// The request was made and the server responded with a status code

// that falls out of the range of 2xx

const { status: responseStatus } = error.response;

if (responseStatus === 401) {

// 记录当前跳出登录地址,登录成功后跳回来

Cookies.set('origin_url', window.location.href);

} else if (responseStatus === 403) {

// 没有权限

Message.error('没有权限操作!');

} else {

const msg = error.response?.data?.error?.msg || '服务端接口异常!';

Message.error(msg);

return Promise.reject(new Error(msg));

}

} else {

// Something happened in setting up the request that triggered an Error

console.error(error);

return Promise.reject(new Error('请求出错!'));

}

return Promise.reject(error);

}

);

页面获取code

deleteAppAuth(row.id).then(

() => {

this.$message.success('删除资源成功!');

this.search();

},

(error) => {

if (error.code === 'REL001') {

this.authMsg = `“${row.name}”资源上存在关联数据,请再次确认是否要删除!`;

this.$confirm(this.authMsg, '二次确认', {

confirmButtonText: '再次确认',

cancelButtonText: '取消',

closeOnClickModal: false,

type: 'warning',

}).then(

() => {

secondSureDeleteAuth(row.id).then(() => {

this.$message.success('删除资源成功!');

this.$router.go(-1);

});

},

() => {

console.log('二次确认取消');

}

);

}

}

);

但是这样打印error.code是undefined,而且还把错误文本返回到页面上了
vue 如何获取后端返回来的code?
求大佬指点,怎么才能拿到code且不让返回错误文本到页面上?


回答:

你需要去 响应拦截器 里面检查 Promise.reject() 返回出来的数据是否是 完整的响应内容 data
因为有看到如果 responseStatus 不等于 401 或者 403 时,只会返回错误信息文本。

所以其实你现在直接输出 deleteAppAuth()error 多半只是错误描述信息。
修改成返回完整返回体就好了,只是你要确定其他的地方会不会有异常。因为会有历史代码会用到。

以上是 vue 如何获取后端返回来的code? 的全部内容, 来源链接: utcz.com/p/933082.html

回到顶部